From e4afe3a056c23f3fd723d2a44d12c5e894166a64 Mon Sep 17 00:00:00 2001 From: Marcel R Date: Sun, 5 Nov 2023 12:20:23 +0100 Subject: [PATCH] Streamline docker image builds, add alma9 images. (#169) * Add a9 py38-11 images. * Update tags, test composite action. * Update action template. * Typo. * Move checkout action. * Pass secrets as inputs. * Use composite actions for a9. * Use input choice. * Test input type. * Fix boolean usage. * Use action template. --- .github/actions/build-image/action.yml | 48 ++++++ .github/workflows/deploy_images_a9.yml | 132 ++++++++++++++--- .github/workflows/deploy_images_c7.yml | 137 +++++++----------- .github/workflows/deploy_images_c8.yml | 193 +++++++------------------ README.md | 31 ++-- docker/Dockerfile_alma9_py310 | 82 +++++++++++ docker/Dockerfile_alma9_py311 | 82 +++++++++++ docker/Dockerfile_alma9_py37 | 4 +- docker/Dockerfile_alma9_py38 | 82 +++++++++++ docker/Dockerfile_alma9_py39 | 82 +++++++++++ docker/Dockerfile_centos7_py310 | 2 +- docker/Dockerfile_centos8_py310 | 2 +- docker/Dockerfile_centos8_py311 | 2 +- docker/Dockerfile_centos8_py37 | 2 +- docker/Dockerfile_centos8_py38 | 2 +- docker/Dockerfile_centos8_py39 | 2 +- 16 files changed, 616 insertions(+), 269 deletions(-) create mode 100644 .github/actions/build-image/action.yml create mode 100644 docker/Dockerfile_alma9_py310 create mode 100644 docker/Dockerfile_alma9_py311 create mode 100644 docker/Dockerfile_alma9_py38 create mode 100644 docker/Dockerfile_alma9_py39 diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml new file mode 100644 index 00000000..efa0aba9 --- /dev/null +++ b/.github/actions/build-image/action.yml @@ -0,0 +1,48 @@ +inputs: + dockerhub_username: + description: "The DockerHub username." + required: true + + dockerhub_token: + description: "The DockerHub login token." + required: true + + docker_file: + description: "The docker file." + required: true + + tags: + description: "Image tags (csv)." + required: true + + platforms: + description: "Platforms to build for (csv)." + default: "linux/amd64,linux/arm64" + + push_image: + description: "Whether to push to DockerHub." + default: false + +runs: + using: "composite" + steps: + - name: Set up QEMU 🌈 + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx ✨ + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub 🎪 + uses: docker/login-action@v3 + with: + username: ${{ inputs.dockerhub_username }} + password: ${{ inputs.dockerhub_token }} + + - name: Build and deploy image 🐳 + uses: docker/build-push-action@v5 + with: + context: docker + file: ${{ inputs.docker_file }} + platforms: ${{ inputs.platforms }} + push: ${{ inputs.push_image }} + tags: ${{ inputs.tags }} diff --git a/.github/workflows/deploy_images_a9.yml b/.github/workflows/deploy_images_a9.yml index ab443b68..ff0924bf 100644 --- a/.github/workflows/deploy_images_a9.yml +++ b/.github/workflows/deploy_images_a9.yml @@ -3,18 +3,45 @@ name: Deploy images AlmaLinux9 on: workflow_dispatch: inputs: - build_only: - description: Build only? (true|false) - required: false - default: 'false' + push_image: + description: "Push image to DockerHub" + type: boolean + default: false + specific_job: - description: Run a specific job? (a9-py37) - required: false - default: '' + description: "Specific job to run" + type: choice + default: "none" + options: + - "none" + - py37 + - py38 + - py39 + - py310 + - py311 + - example jobs: a9-py37: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'a9-py37') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py37') }} + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Build and deploy image 🐳 + uses: ./.github/actions/build-image + with: + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_alma9_py37 + tags: riga/law:a9-py37,riga/law:py37 + push_image: ${{ github.event.inputs.push_image == 'true' }} + + a9-py38: + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py38') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ @@ -22,23 +49,84 @@ jobs: with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v3 + - name: Build and deploy image 🐳 + uses: ./.github/actions/build-image + with: + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_alma9_py38 + tags: riga/law:a9-py38,riga/law:py38 + push_image: ${{ github.event.inputs.push_image == 'true' }} - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v3 + a9-py39: + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py39') }} + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + with: + persist-credentials: false - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v3 + - name: Build and deploy image 🐳 + uses: ./.github/actions/build-image with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_alma9_py39 + tags: riga/law:a9-py39,riga/law:py39 + push_image: ${{ github.event.inputs.push_image == 'true' }} + + a9-py310: + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py310') }} + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Build and deploy image 🐳 + uses: ./.github/actions/build-image + with: + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_alma9_py310 + tags: riga/law:a9-py310,riga/law:py310 + push_image: ${{ github.event.inputs.push_image == 'true' }} + + a9-py311: + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py311') }} + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Build and deploy image 🐳 + uses: ./.github/actions/build-image + with: + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_alma9_py311 + tags: riga/law:a9-py311,riga/law:a9-py3,riga/law:a9,riga/law:py311,riga/law:py3,riga/law:latest + push_image: ${{ github.event.inputs.push_image == 'true' }} + + example: + if: ${{ github.event.inputs.push_image == 'true' && (github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'example')) }} + needs: a9-py311 + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + with: + persist-credentials: false - name: Build and deploy image 🐳 - uses: docker/build-push-action@v5 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_alma9_py37 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} - tags: riga/law:a9-py37 + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_example + tags: riga/law:example + push_image: true diff --git a/.github/workflows/deploy_images_c7.yml b/.github/workflows/deploy_images_c7.yml index 38a535af..74120abc 100644 --- a/.github/workflows/deploy_images_c7.yml +++ b/.github/workflows/deploy_images_c7.yml @@ -3,23 +3,32 @@ name: Deploy images CentOS7 on: workflow_dispatch: inputs: - build_only: - description: Build only? (true|false) - required: false - default: 'false' + push_image: + description: "Push image to DockerHub" + type: boolean + default: false + specific_job: - description: Run a specific job? (c7-py27|c7-py36|c7-py37|c7-py38|c7-py39|c7-py310) - required: false - default: '' + description: "Specific job to run" + type: choice + default: "none" + options: + - "none" + - py27 + - py36 + - py37 + - py38 + - py39 + - py310 jobs: # still existing for legacy support, to be removed soon c7-py27: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c7-py27') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py27') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false @@ -36,11 +45,11 @@ jobs: # still existing for legacy support, to be removed soon c7-py36: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c7-py36') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py36') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false @@ -56,121 +65,73 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} c7-py37: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c7-py37') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py37') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_centos7_py37 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos7_py37 tags: riga/law:c7-py37 + push_image: ${{ github.event.inputs.push_image == 'true' }} c7-py38: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c7-py38') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py38') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_centos7_py38 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos7_py38 tags: riga/law:c7-py38 + push_image: ${{ github.event.inputs.push_image == 'true' }} c7-py39: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c7-py39') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py39') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_centos7_py39 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos7_py39 tags: riga/law:c7-py39 + push_image: ${{ github.event.inputs.push_image == 'true' }} c7-py310: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c7-py310') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py310') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_centos7_py310 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} - tags: riga/law:c7-py310 + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos7_py310 + tags: riga/law:c7-py310,riga/law:c7-py3,riga/law:c7 + push_image: ${{ github.event.inputs.push_image == 'true' }} diff --git a/.github/workflows/deploy_images_c8.yml b/.github/workflows/deploy_images_c8.yml index 33f30e49..641e61bc 100644 --- a/.github/workflows/deploy_images_c8.yml +++ b/.github/workflows/deploy_images_c8.yml @@ -3,193 +3,110 @@ name: Deploy images CentOS8 on: workflow_dispatch: inputs: - build_only: - description: Build only? (true|false) - required: false - default: 'false' + push_image: + description: "Push image to DockerHub" + type: boolean + default: false + specific_job: - description: Run a specific job? (c8-py37|c8-py38|c8-py39|c8-py310|c8-py311|example) - required: false - default: '' + description: "Specific job to run" + type: choice + default: "none" + options: + - "none" + - py37 + - py38 + - py39 + - py310 + - py311 jobs: c8-py37: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c8-py37') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'c8-py37') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_centos8_py37 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} - tags: riga/law:c8-py37,riga/law:py37 + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos8_py37 + tags: riga/law:c8-py37 + push_image: ${{ github.event.inputs.push_image == 'true' }} c8-py38: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c8-py38') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py38') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_centos8_py38 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} - tags: riga/law:c8-py38,riga/law:py38 + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos8_py38 + tags: riga/law:c8-py38 + push_image: ${{ github.event.inputs.push_image == 'true' }} c8-py39: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c8-py39') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py39') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_centos8_py39 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} - tags: riga/law:c8-py39,riga/law:py39 + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos8_py39 + tags: riga/law:c8-py39 + push_image: ${{ github.event.inputs.push_image == 'true' }} c8-py310: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c8-py310') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py310') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_centos8_py310 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} - tags: riga/law:c8-py310,riga/law:c8-py3,riga/law:c8,riga/law:py310,riga/law:py3,riga/law:latest + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos8_py310 + tags: riga/law:c8-py310 + push_image: ${{ github.event.inputs.push_image == 'true' }} c8-py311: - if: ${{ github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'c8-py311') }} + if: ${{ github.event.inputs.specific_job == 'none' || contains(github.event.inputs.specific_job, 'py311') }} runs-on: ubuntu-latest steps: - name: Checkout 🛎️ - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 - with: - context: docker - file: docker/Dockerfile_centos8_py311 - platforms: linux/amd64,linux/arm64 - push: ${{ github.event.inputs.build_only != 'true' }} - tags: riga/law:c8-py311,riga/law:py311 - - example: - if: ${{ github.event.inputs.build_only != 'true' && (github.event.inputs.specific_job == '' || contains(github.event.inputs.specific_job, 'example')) }} - needs: c8-py310 - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v3 - with: - persist-credentials: false - - - name: Set up QEMU 🌈 - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx ✨ - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub 🎪 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and deploy image 🐳 - uses: docker/build-push-action@v4 + uses: ./.github/actions/build-image with: - context: docker - file: docker/Dockerfile_example - platforms: linux/amd64,linux/arm64 - push: true - tags: riga/law:example + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} + docker_file: docker/Dockerfile_centos8_py311 + tags: riga/law:c8-py311,riga/law:c8-py3,riga/law:c8 + push_image: ${{ github.event.inputs.push_image == 'true' }} diff --git a/README.md b/README.md index f348be3e..0243376a 100644 --- a/README.md +++ b/README.md @@ -231,19 +231,24 @@ Start them via docker run -ti riga/law: ``` -| OS | Python | Tags | -| -------- | ------ | ----------------------------------------- | -| Centos 8 | 3.11 | c8-py311, py311 | -| Centos 8 | 3.10 | c8-py310, c8-py3, c8, py310, py3, latest | -| Centos 8 | 3.9 | c8-py39, py39 | -| Centos 8 | 3.8 | c8-py38, py38 | -| Centos 8 | 3.7 | c8-py37, py37 | -| Centos 7 | 3.10 | c7-py310 | -| Centos 7 | 3.9 | c7-py39, c7-py3, c7 | -| Centos 7 | 3.8 | c7-py38 | -| Centos 7 | 3.7 | c7-py37 | -| Centos 7 | 3.6 | c7-py36, py36 (removed soon) | -| Centos 7 | 2.7 | c7-py27, c7-py2, py27, py2 (removed soon) | +| OS | Python | Tags | +| ----------- | ------ | ----------------------------------------- | +| AlmaLinux 9 | 3.11 | a9-py311, a9-py3, a9, py311, py3, latest | +| AlmaLinux 9 | 3.10 | a9-py310, py310 | +| AlmaLinux 9 | 3.9 | a9-py39, py39 | +| AlmaLinux 9 | 3.8 | a9-py38, py38 | +| AlmaLinux 9 | 3.7 | a9-py37, py37 | +| CentOS 8 | 3.11 | c8-py311, c8-py3, c8 | +| CentOS 8 | 3.10 | c8-py310 | +| CentOS 8 | 3.9 | c8-py39 | +| CentOS 8 | 3.8 | c8-py38 | +| CentOS 8 | 3.7 | c8-py37 | +| CentOS 7 | 3.10 | c7-py310, c7-py3, c7 | +| CentOS 7 | 3.9 | c7-py39 | +| CentOS 7 | 3.8 | c7-py38 | +| CentOS 7 | 3.7 | c7-py37 | +| CentOS 7 | 3.6 | c7-py36, py36 (removed soon) | +| CentOS 7 | 2.7 | c7-py27, c7-py2, py27, py2 (removed soon) | ### Contributors diff --git a/docker/Dockerfile_alma9_py310 b/docker/Dockerfile_alma9_py310 new file mode 100644 index 00000000..1f2535dd --- /dev/null +++ b/docker/Dockerfile_alma9_py310 @@ -0,0 +1,82 @@ +FROM almalinux:9 + +ARG TARGETPLATFORM + +# labels +LABEL law.version="0.1.14" +LABEL law.image-name="riga/law" +LABEL law.image-tag="a9-py310" +LABEL law.image-os="almalinux9" +LABEL law.image-python-major="3" +LABEL law.image-python-minor="10" +LABEL law.image-python="3.10" + +# law specific environment variables +ENV LAW_IMAGE_ROOT /root/law +ENV LAW_IMAGE_NAME riga/law +ENV LAW_IMAGE_TAG a9-py310 +ENV LAW_IMAGE_PYTHON_MAJOR 3 +ENV LAW_IMAGE_PYTHON_MINOR 10 +ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} +ENV LAW_MAMBA_ROOT /root/mamba +ENV LAW_SANDBOX docker::riga/law:a9-py310,docker::riga/law:py310 + +# exposed ports +EXPOSE 8082 + +# bash files +COPY bash_profile /root/.bash_profile +COPY bashrc /root/.bashrc + +# installation workdir +WORKDIR /root/install + +# prepare yum +RUN yum -y update; yum clean all +RUN yum -y install --allowerasing yum-utils epel-release curl wget bzip2; yum clean all + +# setup mamba +ENV MAMBA_ROOT_PREFIX "${LAW_MAMBA_ROOT}" +ENV MAMBA_EXE "${MAMBA_ROOT_PREFIX}/bin/micromamba" +ENV PATH "${MAMBA_ROOT_PREFIX}/bin:${PATH}" +RUN case "${TARGETPLATFORM}" in \ + "linux/amd64") MAMBA_PLATFORM="linux-64" ;; \ + "linux/arm64") MAMBA_PLATFORM="linux-aarch64" ;; \ + "darwin/amd64") MAMBA_PLATFORM="osx-64" ;; \ + "darwin/arm64") MAMBA_PLATFORM="osx-arm64" ;; \ + *) MAMBA_PLATFORM="linux-64" ;; \ + esac && \ + mkdir -p "${MAMBA_ROOT_PREFIX}" && \ + curl -Ls "https://micro.mamba.pm/api/micromamba/${MAMBA_PLATFORM}/latest" | tar -xvj -C "${MAMBA_ROOT_PREFIX}" "bin/micromamba" +RUN echo $'\n\ +changeps1: false\n\ +always_yes: true\n\ +channels:\n\ + - conda-forge\n\ +' >> "${MAMBA_ROOT_PREFIX}/.condarc" +SHELL ["micromamba", "run", "-n", "base", "/bin/bash", "-c"] + +# mamba packages +RUN micromamba install "python=${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR}" gcc which wget nano micro git git-lfs cmake ncurses readline && \ + micromamba clean --all +RUN micromamba install gfal2 gfal2-util python-gfal2 && \ + micromamba clean --all + +# python packages +RUN pip install --no-cache-dir --upgrade pip +RUN pip install --no-cache-dir --upgrade setuptools +RUN pip install --no-cache-dir slackclient python-telegram-bot +RUN pip install --no-cache-dir "flake8<6" flake8-quotes flake8-commas pytest-cov + +# cleanup installation workdir +WORKDIR /root +RUN rm -rf /root/install + +# install law master +RUN git clone --recursive https://github.com/riga/law "${LAW_IMAGE_ROOT}" && \ + cd "${LAW_IMAGE_ROOT}" && \ + pip install --no-cache-dir . +WORKDIR ${LAW_IMAGE_ROOT} + +# default shell +SHELL ["micromamba", "run", "-n", "base", "/bin/bash", "-i", "--login"] diff --git a/docker/Dockerfile_alma9_py311 b/docker/Dockerfile_alma9_py311 new file mode 100644 index 00000000..b0129fad --- /dev/null +++ b/docker/Dockerfile_alma9_py311 @@ -0,0 +1,82 @@ +FROM almalinux:9 + +ARG TARGETPLATFORM + +# labels +LABEL law.version="0.1.14" +LABEL law.image-name="riga/law" +LABEL law.image-tag="a9-py311" +LABEL law.image-os="almalinux9" +LABEL law.image-python-major="3" +LABEL law.image-python-minor="11" +LABEL law.image-python="3.11" + +# law specific environment variables +ENV LAW_IMAGE_ROOT /root/law +ENV LAW_IMAGE_NAME riga/law +ENV LAW_IMAGE_TAG a9-py311 +ENV LAW_IMAGE_PYTHON_MAJOR 3 +ENV LAW_IMAGE_PYTHON_MINOR 11 +ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} +ENV LAW_MAMBA_ROOT /root/mamba +ENV LAW_SANDBOX docker::riga/law:a9-py311,docker::riga/law:a9-py3,docker::riga/law:a9,docker::riga/law:py311,docker::riga/law:py3,docker::riga/law:latest,docker::riga/law + +# exposed ports +EXPOSE 8082 + +# bash files +COPY bash_profile /root/.bash_profile +COPY bashrc /root/.bashrc + +# installation workdir +WORKDIR /root/install + +# prepare yum +RUN yum -y update; yum clean all +RUN yum -y install --allowerasing yum-utils epel-release curl wget bzip2; yum clean all + +# setup mamba +ENV MAMBA_ROOT_PREFIX "${LAW_MAMBA_ROOT}" +ENV MAMBA_EXE "${MAMBA_ROOT_PREFIX}/bin/micromamba" +ENV PATH "${MAMBA_ROOT_PREFIX}/bin:${PATH}" +RUN case "${TARGETPLATFORM}" in \ + "linux/amd64") MAMBA_PLATFORM="linux-64" ;; \ + "linux/arm64") MAMBA_PLATFORM="linux-aarch64" ;; \ + "darwin/amd64") MAMBA_PLATFORM="osx-64" ;; \ + "darwin/arm64") MAMBA_PLATFORM="osx-arm64" ;; \ + *) MAMBA_PLATFORM="linux-64" ;; \ + esac && \ + mkdir -p "${MAMBA_ROOT_PREFIX}" && \ + curl -Ls "https://micro.mamba.pm/api/micromamba/${MAMBA_PLATFORM}/latest" | tar -xvj -C "${MAMBA_ROOT_PREFIX}" "bin/micromamba" +RUN echo $'\n\ +changeps1: false\n\ +always_yes: true\n\ +channels:\n\ + - conda-forge\n\ +' >> "${MAMBA_ROOT_PREFIX}/.condarc" +SHELL ["micromamba", "run", "-n", "base", "/bin/bash", "-c"] + +# mamba packages +RUN micromamba install "python=${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR}" gcc which wget nano micro git git-lfs cmake ncurses readline && \ + micromamba clean --all +RUN micromamba install gfal2 gfal2-util python-gfal2 && \ + micromamba clean --all + +# python packages +RUN pip install --no-cache-dir --upgrade pip +RUN pip install --no-cache-dir --upgrade setuptools +RUN pip install --no-cache-dir slackclient python-telegram-bot +RUN pip install --no-cache-dir "flake8<6" flake8-quotes flake8-commas pytest-cov + +# cleanup installation workdir +WORKDIR /root +RUN rm -rf /root/install + +# install law master +RUN git clone --recursive https://github.com/riga/law "${LAW_IMAGE_ROOT}" && \ + cd "${LAW_IMAGE_ROOT}" && \ + pip install --no-cache-dir . +WORKDIR ${LAW_IMAGE_ROOT} + +# default shell +SHELL ["micromamba", "run", "-n", "base", "/bin/bash", "-i", "--login"] diff --git a/docker/Dockerfile_alma9_py37 b/docker/Dockerfile_alma9_py37 index 4e88b70b..98bfa956 100644 --- a/docker/Dockerfile_alma9_py37 +++ b/docker/Dockerfile_alma9_py37 @@ -19,7 +19,7 @@ ENV LAW_IMAGE_PYTHON_MAJOR 3 ENV LAW_IMAGE_PYTHON_MINOR 7 ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} ENV LAW_MAMBA_ROOT /root/mamba -ENV LAW_SANDBOX docker::riga/law:a9-py37 +ENV LAW_SANDBOX docker::riga/law:a9-py37,docker::riga/law:py37 # exposed ports EXPOSE 8082 @@ -33,7 +33,7 @@ WORKDIR /root/install # prepare yum RUN yum -y update; yum clean all -RUN yum -y install yum-utils epel-release curl wget bzip2 --allowerasing; yum clean all +RUN yum -y install --allowerasing yum-utils epel-release curl wget bzip2; yum clean all # setup mamba ENV MAMBA_ROOT_PREFIX "${LAW_MAMBA_ROOT}" diff --git a/docker/Dockerfile_alma9_py38 b/docker/Dockerfile_alma9_py38 new file mode 100644 index 00000000..1d9e16a9 --- /dev/null +++ b/docker/Dockerfile_alma9_py38 @@ -0,0 +1,82 @@ +FROM almalinux:9 + +ARG TARGETPLATFORM + +# labels +LABEL law.version="0.1.14" +LABEL law.image-name="riga/law" +LABEL law.image-tag="a9-py38" +LABEL law.image-os="almalinux9" +LABEL law.image-python-major="3" +LABEL law.image-python-minor="8" +LABEL law.image-python="3.8" + +# law specific environment variables +ENV LAW_IMAGE_ROOT /root/law +ENV LAW_IMAGE_NAME riga/law +ENV LAW_IMAGE_TAG a9-py38 +ENV LAW_IMAGE_PYTHON_MAJOR 3 +ENV LAW_IMAGE_PYTHON_MINOR 8 +ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} +ENV LAW_MAMBA_ROOT /root/mamba +ENV LAW_SANDBOX docker::riga/law:a9-py38,docker::riga/law:py38 + +# exposed ports +EXPOSE 8082 + +# bash files +COPY bash_profile /root/.bash_profile +COPY bashrc /root/.bashrc + +# installation workdir +WORKDIR /root/install + +# prepare yum +RUN yum -y update; yum clean all +RUN yum -y install --allowerasing yum-utils epel-release curl wget bzip2; yum clean all + +# setup mamba +ENV MAMBA_ROOT_PREFIX "${LAW_MAMBA_ROOT}" +ENV MAMBA_EXE "${MAMBA_ROOT_PREFIX}/bin/micromamba" +ENV PATH "${MAMBA_ROOT_PREFIX}/bin:${PATH}" +RUN case "${TARGETPLATFORM}" in \ + "linux/amd64") MAMBA_PLATFORM="linux-64" ;; \ + "linux/arm64") MAMBA_PLATFORM="linux-aarch64" ;; \ + "darwin/amd64") MAMBA_PLATFORM="osx-64" ;; \ + "darwin/arm64") MAMBA_PLATFORM="osx-arm64" ;; \ + *) MAMBA_PLATFORM="linux-64" ;; \ + esac && \ + mkdir -p "${MAMBA_ROOT_PREFIX}" && \ + curl -Ls "https://micro.mamba.pm/api/micromamba/${MAMBA_PLATFORM}/latest" | tar -xvj -C "${MAMBA_ROOT_PREFIX}" "bin/micromamba" +RUN echo $'\n\ +changeps1: false\n\ +always_yes: true\n\ +channels:\n\ + - conda-forge\n\ +' >> "${MAMBA_ROOT_PREFIX}/.condarc" +SHELL ["micromamba", "run", "-n", "base", "/bin/bash", "-c"] + +# mamba packages +RUN micromamba install "python=${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR}" gcc which wget nano micro git git-lfs cmake ncurses readline && \ + micromamba clean --all +RUN micromamba install gfal2 gfal2-util python-gfal2 && \ + micromamba clean --all + +# python packages +RUN pip install --no-cache-dir --upgrade pip +RUN pip install --no-cache-dir --upgrade setuptools +RUN pip install --no-cache-dir slackclient python-telegram-bot +RUN pip install --no-cache-dir "flake8<6" flake8-quotes flake8-commas pytest-cov + +# cleanup installation workdir +WORKDIR /root +RUN rm -rf /root/install + +# install law master +RUN git clone --recursive https://github.com/riga/law "${LAW_IMAGE_ROOT}" && \ + cd "${LAW_IMAGE_ROOT}" && \ + pip install --no-cache-dir . +WORKDIR ${LAW_IMAGE_ROOT} + +# default shell +SHELL ["micromamba", "run", "-n", "base", "/bin/bash", "-i", "--login"] diff --git a/docker/Dockerfile_alma9_py39 b/docker/Dockerfile_alma9_py39 new file mode 100644 index 00000000..7049269b --- /dev/null +++ b/docker/Dockerfile_alma9_py39 @@ -0,0 +1,82 @@ +FROM almalinux:9 + +ARG TARGETPLATFORM + +# labels +LABEL law.version="0.1.14" +LABEL law.image-name="riga/law" +LABEL law.image-tag="a9-py39" +LABEL law.image-os="almalinux9" +LABEL law.image-python-major="3" +LABEL law.image-python-minor="9" +LABEL law.image-python="3.9" + +# law specific environment variables +ENV LAW_IMAGE_ROOT /root/law +ENV LAW_IMAGE_NAME riga/law +ENV LAW_IMAGE_TAG a9-py39 +ENV LAW_IMAGE_PYTHON_MAJOR 3 +ENV LAW_IMAGE_PYTHON_MINOR 9 +ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} +ENV LAW_MAMBA_ROOT /root/mamba +ENV LAW_SANDBOX docker::riga/law:a9-py39,docker::riga/law:py39 + +# exposed ports +EXPOSE 8082 + +# bash files +COPY bash_profile /root/.bash_profile +COPY bashrc /root/.bashrc + +# installation workdir +WORKDIR /root/install + +# prepare yum +RUN yum -y update; yum clean all +RUN yum -y install --allowerasing yum-utils epel-release curl wget bzip2; yum clean all + +# setup mamba +ENV MAMBA_ROOT_PREFIX "${LAW_MAMBA_ROOT}" +ENV MAMBA_EXE "${MAMBA_ROOT_PREFIX}/bin/micromamba" +ENV PATH "${MAMBA_ROOT_PREFIX}/bin:${PATH}" +RUN case "${TARGETPLATFORM}" in \ + "linux/amd64") MAMBA_PLATFORM="linux-64" ;; \ + "linux/arm64") MAMBA_PLATFORM="linux-aarch64" ;; \ + "darwin/amd64") MAMBA_PLATFORM="osx-64" ;; \ + "darwin/arm64") MAMBA_PLATFORM="osx-arm64" ;; \ + *) MAMBA_PLATFORM="linux-64" ;; \ + esac && \ + mkdir -p "${MAMBA_ROOT_PREFIX}" && \ + curl -Ls "https://micro.mamba.pm/api/micromamba/${MAMBA_PLATFORM}/latest" | tar -xvj -C "${MAMBA_ROOT_PREFIX}" "bin/micromamba" +RUN echo $'\n\ +changeps1: false\n\ +always_yes: true\n\ +channels:\n\ + - conda-forge\n\ +' >> "${MAMBA_ROOT_PREFIX}/.condarc" +SHELL ["micromamba", "run", "-n", "base", "/bin/bash", "-c"] + +# mamba packages +RUN micromamba install "python=${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR}" gcc which wget nano micro git git-lfs cmake ncurses readline && \ + micromamba clean --all +RUN micromamba install gfal2 gfal2-util python-gfal2 && \ + micromamba clean --all + +# python packages +RUN pip install --no-cache-dir --upgrade pip +RUN pip install --no-cache-dir --upgrade setuptools +RUN pip install --no-cache-dir slackclient python-telegram-bot +RUN pip install --no-cache-dir "flake8<6" flake8-quotes flake8-commas pytest-cov + +# cleanup installation workdir +WORKDIR /root +RUN rm -rf /root/install + +# install law master +RUN git clone --recursive https://github.com/riga/law "${LAW_IMAGE_ROOT}" && \ + cd "${LAW_IMAGE_ROOT}" && \ + pip install --no-cache-dir . +WORKDIR ${LAW_IMAGE_ROOT} + +# default shell +SHELL ["micromamba", "run", "-n", "base", "/bin/bash", "-i", "--login"] diff --git a/docker/Dockerfile_centos7_py310 b/docker/Dockerfile_centos7_py310 index addae210..ac87058e 100644 --- a/docker/Dockerfile_centos7_py310 +++ b/docker/Dockerfile_centos7_py310 @@ -19,7 +19,7 @@ ENV LAW_IMAGE_PYTHON_MAJOR 3 ENV LAW_IMAGE_PYTHON_MINOR 10 ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} ENV LAW_MAMBA_ROOT /root/mamba -ENV LAW_SANDBOX docker::riga/law:c7-py310 +ENV LAW_SANDBOX docker::riga/law:c7-py310,docker::riga/law:c7-py3,docker::riga/law:c7 # exposed ports EXPOSE 8082 diff --git a/docker/Dockerfile_centos8_py310 b/docker/Dockerfile_centos8_py310 index 38ade26e..82b8c78b 100644 --- a/docker/Dockerfile_centos8_py310 +++ b/docker/Dockerfile_centos8_py310 @@ -19,7 +19,7 @@ ENV LAW_IMAGE_PYTHON_MAJOR 3 ENV LAW_IMAGE_PYTHON_MINOR 10 ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} ENV LAW_MAMBA_ROOT /root/mamba -ENV LAW_SANDBOX docker::riga/law:c8-py310,docker::riga/law:py310,docker::riga/law:c8-py3,docker::riga/law:py3,docker::riga/law:c8,docker::riga/law:latest,docker::riga/law +ENV LAW_SANDBOX docker::riga/law:c8-py310 # exposed ports EXPOSE 8082 diff --git a/docker/Dockerfile_centos8_py311 b/docker/Dockerfile_centos8_py311 index 5dbe6f71..0f8c6aa3 100644 --- a/docker/Dockerfile_centos8_py311 +++ b/docker/Dockerfile_centos8_py311 @@ -19,7 +19,7 @@ ENV LAW_IMAGE_PYTHON_MAJOR 3 ENV LAW_IMAGE_PYTHON_MINOR 11 ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} ENV LAW_MAMBA_ROOT /root/mamba -ENV LAW_SANDBOX docker::riga/law:c8-py311,docker::riga/law:py311 +ENV LAW_SANDBOX docker::riga/law:c8-py311,docker::riga/law:c8-py3,docker::riga/law:c8 # exposed ports EXPOSE 8082 diff --git a/docker/Dockerfile_centos8_py37 b/docker/Dockerfile_centos8_py37 index 5d131416..35c89982 100644 --- a/docker/Dockerfile_centos8_py37 +++ b/docker/Dockerfile_centos8_py37 @@ -19,7 +19,7 @@ ENV LAW_IMAGE_PYTHON_MAJOR 3 ENV LAW_IMAGE_PYTHON_MINOR 7 ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} ENV LAW_MAMBA_ROOT /root/mamba -ENV LAW_SANDBOX docker::riga/law:c8-py37,docker::riga/law:py37 +ENV LAW_SANDBOX docker::riga/law:c8-py37 # exposed ports EXPOSE 8082 diff --git a/docker/Dockerfile_centos8_py38 b/docker/Dockerfile_centos8_py38 index 179bd37c..ae935d9a 100644 --- a/docker/Dockerfile_centos8_py38 +++ b/docker/Dockerfile_centos8_py38 @@ -19,7 +19,7 @@ ENV LAW_IMAGE_PYTHON_MAJOR 3 ENV LAW_IMAGE_PYTHON_MINOR 8 ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} ENV LAW_MAMBA_ROOT /root/mamba -ENV LAW_SANDBOX docker::riga/law:c8-py38,docker::riga/law:py38 +ENV LAW_SANDBOX docker::riga/law:c8-py38 # exposed ports EXPOSE 8082 diff --git a/docker/Dockerfile_centos8_py39 b/docker/Dockerfile_centos8_py39 index 531d3d93..15bb445a 100644 --- a/docker/Dockerfile_centos8_py39 +++ b/docker/Dockerfile_centos8_py39 @@ -19,7 +19,7 @@ ENV LAW_IMAGE_PYTHON_MAJOR 3 ENV LAW_IMAGE_PYTHON_MINOR 9 ENV LAW_IMAGE_PYTHON ${LAW_IMAGE_PYTHON_MAJOR}.${LAW_IMAGE_PYTHON_MINOR} ENV LAW_MAMBA_ROOT /root/mamba -ENV LAW_SANDBOX docker::riga/law:c8-py39,docker::riga/law:py39 +ENV LAW_SANDBOX docker::riga/law:c8-py39 # exposed ports EXPOSE 8082