diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 5e560d74..aca195d4 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 3.1.0 +current_version = 3.2.0 tag_name = {new_version} commit = True tag = True diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 1589d2f3..97d4d14f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -29,7 +29,7 @@ jobs: - name: Checkout repo uses: actions/checkout@v3 with: - ref: develop + ref: ${{ github.event.pull_request.head.ref }} fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 @@ -53,7 +53,7 @@ jobs: needs: build steps: - name: Approve - uses: hmarr/auto-approve-action@v3.1.0 + uses: hmarr/auto-approve-action@v3.2.1 with: github-token: "${{ github.actor == 'LuisAlejandro' && secrets.GITHUB_TOKEN || secrets.PERSONAL_ACCESS_TOKEN }}" diff --git a/.github/workflows/push-develop.yml b/.github/workflows/push-develop.yml index d0934acb..d19d8807 100644 --- a/.github/workflows/push-develop.yml +++ b/.github/workflows/push-develop.yml @@ -13,13 +13,13 @@ jobs: fail-fast: false matrix: include: - - docker-image-name: "dockershelf/debian:buster" + - docker-image-name: "dockershelf/debian:bullseye" docker-image-extra-tags: "dockershelf/debian:oldstable" debian-suite: "oldstable" - - docker-image-name: "dockershelf/debian:bullseye" + - docker-image-name: "dockershelf/debian:bookworm" docker-image-extra-tags: "dockershelf/debian:stable" debian-suite: "stable" - - docker-image-name: "dockershelf/debian:bookworm" + - docker-image-name: "dockershelf/debian:trixie" docker-image-extra-tags: "dockershelf/debian:testing" debian-suite: "testing" - docker-image-name: "dockershelf/debian:sid" @@ -27,35 +27,31 @@ jobs: debian-suite: "unstable" - docker-image-name: "dockershelf/latex:basic" - docker-image-name: "dockershelf/latex:full" - - docker-image-name: "dockershelf/python:3.7-bullseye" + - docker-image-name: "dockershelf/python:3.7-bookworm" docker-image-extra-tags: "dockershelf/python:3.7-stable" - docker-image-name: "dockershelf/python:3.7-sid" docker-image-extra-tags: "dockershelf/python:3.7-unstable dockershelf/python:3.7" - - docker-image-name: "dockershelf/python:3.10-bullseye" + - docker-image-name: "dockershelf/python:3.10-bookworm" docker-image-extra-tags: "dockershelf/python:3.10-stable" - docker-image-name: "dockershelf/python:3.10-sid" docker-image-extra-tags: "dockershelf/python:3.10-unstable dockershelf/python:3.10" - - docker-image-name: "dockershelf/python:3.11-bullseye" + - docker-image-name: "dockershelf/python:3.11-bookworm" docker-image-extra-tags: "dockershelf/python:3.11-stable" - docker-image-name: "dockershelf/python:3.11-sid" docker-image-extra-tags: "dockershelf/python:3.11-unstable dockershelf/python:3.11" - - docker-image-name: "dockershelf/python:3.12-bullseye" - docker-image-extra-tags: "dockershelf/python:3.12-stable" - - docker-image-name: "dockershelf/python:3.12-sid" - docker-image-extra-tags: "dockershelf/python:3.12-unstable dockershelf/python:3.12" - - docker-image-name: "dockershelf/node:12-bullseye" + - docker-image-name: "dockershelf/node:12-bookworm" docker-image-extra-tags: "dockershelf/node:12-stable" - docker-image-name: "dockershelf/node:12-sid" docker-image-extra-tags: "dockershelf/node:12-unstable dockershelf/node:12" - - docker-image-name: "dockershelf/node:14-bullseye" + - docker-image-name: "dockershelf/node:14-bookworm" docker-image-extra-tags: "dockershelf/node:14-stable" - docker-image-name: "dockershelf/node:14-sid" docker-image-extra-tags: "dockershelf/node:14-unstable dockershelf/node:14" - - docker-image-name: "dockershelf/node:16-bullseye" + - docker-image-name: "dockershelf/node:16-bookworm" docker-image-extra-tags: "dockershelf/node:16-stable" - docker-image-name: "dockershelf/node:16-sid" docker-image-extra-tags: "dockershelf/node:16-unstable dockershelf/node:16" - - docker-image-name: "dockershelf/node:18-bullseye" + - docker-image-name: "dockershelf/node:18-bookworm" docker-image-extra-tags: "dockershelf/node:18-stable" - docker-image-name: "dockershelf/node:18-sid" docker-image-extra-tags: "dockershelf/node:18-unstable dockershelf/node:18" @@ -66,26 +62,27 @@ jobs: with: ref: develop fetch-depth: 0 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Installing dependencies run: | - sudo apt-get update - sudo apt-get install debootstrap sudo gem install docker-api serverspec - name: Building docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DEBIAN_SUITE: ${{ matrix.debian-suite }} + DH_USERNAME: ${{ secrets.DH_USERNAME }} + DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - DOCKER_IMAGE_TARGET="${DOCKER_IMAGE_NAME##dockershelf/}" - sed -i -r 's|FROM\s*(.*?)|FROM \1-dev|g' "${DOCKER_IMAGE_TARGET/://}/Dockerfile" - sed -i -r 's|FROM scratch-dev|FROM scratch|g' "${DOCKER_IMAGE_TARGET/://}/Dockerfile" - bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" + bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" "${DH_USERNAME}" "${DH_PASSWORD}" "develop" - name: Testing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DOCKER_IMAGE_EXTRA_TAGS: ${{ matrix.docker-image-extra-tags }} run: | - bash test-image.sh "${DOCKER_IMAGE_NAME}" "${DOCKER_IMAGE_EXTRA_TAGS}" + bash test-image.sh "${DOCKER_IMAGE_NAME}" "develop" - name: Pushing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} @@ -93,13 +90,4 @@ jobs: DH_USERNAME: ${{ secrets.DH_USERNAME }} DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - docker tag ${DOCKER_IMAGE_NAME} ${DOCKER_IMAGE_NAME}-dev - DOCKER_IMAGE_NAME="${DOCKER_IMAGE_NAME}-dev" - bash push-image.sh ${DOCKER_IMAGE_NAME} ${DH_USERNAME} ${DH_PASSWORD} - if [ -n "${DOCKER_IMAGE_EXTRA_TAGS}" ]; then - for EXTRA_TAG in ${DOCKER_IMAGE_EXTRA_TAGS}; do - EXTRA_TAG="${EXTRA_TAG}-dev" - docker tag ${DOCKER_IMAGE_NAME} ${EXTRA_TAG} - bash push-image.sh ${EXTRA_TAG} ${DH_USERNAME} ${DH_PASSWORD} - done - fi + bash push-image.sh "${DOCKER_IMAGE_NAME}" "${DH_USERNAME}" "${DH_PASSWORD}" "${DOCKER_IMAGE_EXTRA_TAGS}" "develop" diff --git a/.github/workflows/push-develop.yml.template b/.github/workflows/push-develop.yml.template index aadbdccf..bada4672 100644 --- a/.github/workflows/push-develop.yml.template +++ b/.github/workflows/push-develop.yml.template @@ -21,26 +21,27 @@ jobs: with: ref: develop fetch-depth: 0 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Installing dependencies run: | - sudo apt-get update - sudo apt-get install debootstrap sudo gem install docker-api serverspec - name: Building docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DEBIAN_SUITE: ${{ matrix.debian-suite }} + DH_USERNAME: ${{ secrets.DH_USERNAME }} + DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - DOCKER_IMAGE_TARGET="${DOCKER_IMAGE_NAME##dockershelf/}" - sed -i -r 's|FROM\s*(.*?)|FROM \1-dev|g' "${DOCKER_IMAGE_TARGET/://}/Dockerfile" - sed -i -r 's|FROM scratch-dev|FROM scratch|g' "${DOCKER_IMAGE_TARGET/://}/Dockerfile" - bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" + bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" "${DH_USERNAME}" "${DH_PASSWORD}" "develop" - name: Testing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DOCKER_IMAGE_EXTRA_TAGS: ${{ matrix.docker-image-extra-tags }} run: | - bash test-image.sh "${DOCKER_IMAGE_NAME}" "${DOCKER_IMAGE_EXTRA_TAGS}" + bash test-image.sh "${DOCKER_IMAGE_NAME}" "develop" - name: Pushing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} @@ -48,13 +49,4 @@ jobs: DH_USERNAME: ${{ secrets.DH_USERNAME }} DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - docker tag ${DOCKER_IMAGE_NAME} ${DOCKER_IMAGE_NAME}-dev - DOCKER_IMAGE_NAME="${DOCKER_IMAGE_NAME}-dev" - bash push-image.sh ${DOCKER_IMAGE_NAME} ${DH_USERNAME} ${DH_PASSWORD} - if [ -n "${DOCKER_IMAGE_EXTRA_TAGS}" ]; then - for EXTRA_TAG in ${DOCKER_IMAGE_EXTRA_TAGS}; do - EXTRA_TAG="${EXTRA_TAG}-dev" - docker tag ${DOCKER_IMAGE_NAME} ${EXTRA_TAG} - bash push-image.sh ${EXTRA_TAG} ${DH_USERNAME} ${DH_PASSWORD} - done - fi + bash push-image.sh "${DOCKER_IMAGE_NAME}" "${DH_USERNAME}" "${DH_PASSWORD}" "${DOCKER_IMAGE_EXTRA_TAGS}" "develop" diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml index 80f3de73..931a43b7 100644 --- a/.github/workflows/push-master.yml +++ b/.github/workflows/push-master.yml @@ -13,13 +13,13 @@ jobs: fail-fast: false matrix: include: - - docker-image-name: "dockershelf/debian:buster" + - docker-image-name: "dockershelf/debian:bullseye" docker-image-extra-tags: "dockershelf/debian:oldstable" debian-suite: "oldstable" - - docker-image-name: "dockershelf/debian:bullseye" + - docker-image-name: "dockershelf/debian:bookworm" docker-image-extra-tags: "dockershelf/debian:stable" debian-suite: "stable" - - docker-image-name: "dockershelf/debian:bookworm" + - docker-image-name: "dockershelf/debian:trixie" docker-image-extra-tags: "dockershelf/debian:testing" debian-suite: "testing" - docker-image-name: "dockershelf/debian:sid" @@ -27,35 +27,31 @@ jobs: debian-suite: "unstable" - docker-image-name: "dockershelf/latex:basic" - docker-image-name: "dockershelf/latex:full" - - docker-image-name: "dockershelf/python:3.7-bullseye" + - docker-image-name: "dockershelf/python:3.7-bookworm" docker-image-extra-tags: "dockershelf/python:3.7-stable" - docker-image-name: "dockershelf/python:3.7-sid" docker-image-extra-tags: "dockershelf/python:3.7-unstable dockershelf/python:3.7" - - docker-image-name: "dockershelf/python:3.10-bullseye" + - docker-image-name: "dockershelf/python:3.10-bookworm" docker-image-extra-tags: "dockershelf/python:3.10-stable" - docker-image-name: "dockershelf/python:3.10-sid" docker-image-extra-tags: "dockershelf/python:3.10-unstable dockershelf/python:3.10" - - docker-image-name: "dockershelf/python:3.11-bullseye" + - docker-image-name: "dockershelf/python:3.11-bookworm" docker-image-extra-tags: "dockershelf/python:3.11-stable" - docker-image-name: "dockershelf/python:3.11-sid" docker-image-extra-tags: "dockershelf/python:3.11-unstable dockershelf/python:3.11" - - docker-image-name: "dockershelf/python:3.12-bullseye" - docker-image-extra-tags: "dockershelf/python:3.12-stable" - - docker-image-name: "dockershelf/python:3.12-sid" - docker-image-extra-tags: "dockershelf/python:3.12-unstable dockershelf/python:3.12" - - docker-image-name: "dockershelf/node:12-bullseye" + - docker-image-name: "dockershelf/node:12-bookworm" docker-image-extra-tags: "dockershelf/node:12-stable" - docker-image-name: "dockershelf/node:12-sid" docker-image-extra-tags: "dockershelf/node:12-unstable dockershelf/node:12" - - docker-image-name: "dockershelf/node:14-bullseye" + - docker-image-name: "dockershelf/node:14-bookworm" docker-image-extra-tags: "dockershelf/node:14-stable" - docker-image-name: "dockershelf/node:14-sid" docker-image-extra-tags: "dockershelf/node:14-unstable dockershelf/node:14" - - docker-image-name: "dockershelf/node:16-bullseye" + - docker-image-name: "dockershelf/node:16-bookworm" docker-image-extra-tags: "dockershelf/node:16-stable" - docker-image-name: "dockershelf/node:16-sid" docker-image-extra-tags: "dockershelf/node:16-unstable dockershelf/node:16" - - docker-image-name: "dockershelf/node:18-bullseye" + - docker-image-name: "dockershelf/node:18-bookworm" docker-image-extra-tags: "dockershelf/node:18-stable" - docker-image-name: "dockershelf/node:18-sid" docker-image-extra-tags: "dockershelf/node:18-unstable dockershelf/node:18" @@ -66,23 +62,27 @@ jobs: with: ref: master fetch-depth: 0 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Installing dependencies run: | - sudo apt-get update - sudo apt-get install debootstrap sudo gem install docker-api serverspec - name: Building docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DEBIAN_SUITE: ${{ matrix.debian-suite }} + DH_USERNAME: ${{ secrets.DH_USERNAME }} + DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" + bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" "${DH_USERNAME}" "${DH_PASSWORD}" "master" - name: Testing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DOCKER_IMAGE_EXTRA_TAGS: ${{ matrix.docker-image-extra-tags }} run: | - bash test-image.sh "${DOCKER_IMAGE_NAME}" "${DOCKER_IMAGE_EXTRA_TAGS}" + bash test-image.sh "${DOCKER_IMAGE_NAME}" "master" - name: Pushing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} @@ -90,10 +90,4 @@ jobs: DH_USERNAME: ${{ secrets.DH_USERNAME }} DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - bash push-image.sh ${DOCKER_IMAGE_NAME} ${DH_USERNAME} ${DH_PASSWORD} - if [ -n "${DOCKER_IMAGE_EXTRA_TAGS}" ]; then - for EXTRA_TAG in ${DOCKER_IMAGE_EXTRA_TAGS}; do - docker tag ${DOCKER_IMAGE_NAME} ${EXTRA_TAG} - bash push-image.sh ${EXTRA_TAG} ${DH_USERNAME} ${DH_PASSWORD} - done - fi + bash push-image.sh "${DOCKER_IMAGE_NAME}" "${DH_USERNAME}" "${DH_PASSWORD}" "${DOCKER_IMAGE_EXTRA_TAGS}" "master" diff --git a/.github/workflows/push-master.yml.template b/.github/workflows/push-master.yml.template index 29e44e3d..559ddaa2 100644 --- a/.github/workflows/push-master.yml.template +++ b/.github/workflows/push-master.yml.template @@ -21,23 +21,27 @@ jobs: with: ref: master fetch-depth: 0 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Installing dependencies run: | - sudo apt-get update - sudo apt-get install debootstrap sudo gem install docker-api serverspec - name: Building docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DEBIAN_SUITE: ${{ matrix.debian-suite }} + DH_USERNAME: ${{ secrets.DH_USERNAME }} + DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" + bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" "${DH_USERNAME}" "${DH_PASSWORD}" "master" - name: Testing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DOCKER_IMAGE_EXTRA_TAGS: ${{ matrix.docker-image-extra-tags }} run: | - bash test-image.sh "${DOCKER_IMAGE_NAME}" "${DOCKER_IMAGE_EXTRA_TAGS}" + bash test-image.sh "${DOCKER_IMAGE_NAME}" "master" - name: Pushing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} @@ -45,10 +49,4 @@ jobs: DH_USERNAME: ${{ secrets.DH_USERNAME }} DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - bash push-image.sh ${DOCKER_IMAGE_NAME} ${DH_USERNAME} ${DH_PASSWORD} - if [ -n "${DOCKER_IMAGE_EXTRA_TAGS}" ]; then - for EXTRA_TAG in ${DOCKER_IMAGE_EXTRA_TAGS}; do - docker tag ${DOCKER_IMAGE_NAME} ${EXTRA_TAG} - bash push-image.sh ${EXTRA_TAG} ${DH_USERNAME} ${DH_PASSWORD} - done - fi + bash push-image.sh "${DOCKER_IMAGE_NAME}" "${DH_USERNAME}" "${DH_PASSWORD}" "${DOCKER_IMAGE_EXTRA_TAGS}" "master" diff --git a/.github/workflows/schedule-master.yml b/.github/workflows/schedule-master.yml index dd75e5f4..4edf3369 100644 --- a/.github/workflows/schedule-master.yml +++ b/.github/workflows/schedule-master.yml @@ -12,13 +12,13 @@ jobs: fail-fast: false matrix: include: - - docker-image-name: "dockershelf/debian:buster" + - docker-image-name: "dockershelf/debian:bullseye" docker-image-extra-tags: "dockershelf/debian:oldstable" debian-suite: "oldstable" - - docker-image-name: "dockershelf/debian:bullseye" + - docker-image-name: "dockershelf/debian:bookworm" docker-image-extra-tags: "dockershelf/debian:stable" debian-suite: "stable" - - docker-image-name: "dockershelf/debian:bookworm" + - docker-image-name: "dockershelf/debian:trixie" docker-image-extra-tags: "dockershelf/debian:testing" debian-suite: "testing" - docker-image-name: "dockershelf/debian:sid" @@ -26,35 +26,31 @@ jobs: debian-suite: "unstable" - docker-image-name: "dockershelf/latex:basic" - docker-image-name: "dockershelf/latex:full" - - docker-image-name: "dockershelf/python:3.7-bullseye" + - docker-image-name: "dockershelf/python:3.7-bookworm" docker-image-extra-tags: "dockershelf/python:3.7-stable" - docker-image-name: "dockershelf/python:3.7-sid" docker-image-extra-tags: "dockershelf/python:3.7-unstable dockershelf/python:3.7" - - docker-image-name: "dockershelf/python:3.10-bullseye" + - docker-image-name: "dockershelf/python:3.10-bookworm" docker-image-extra-tags: "dockershelf/python:3.10-stable" - docker-image-name: "dockershelf/python:3.10-sid" docker-image-extra-tags: "dockershelf/python:3.10-unstable dockershelf/python:3.10" - - docker-image-name: "dockershelf/python:3.11-bullseye" + - docker-image-name: "dockershelf/python:3.11-bookworm" docker-image-extra-tags: "dockershelf/python:3.11-stable" - docker-image-name: "dockershelf/python:3.11-sid" docker-image-extra-tags: "dockershelf/python:3.11-unstable dockershelf/python:3.11" - - docker-image-name: "dockershelf/python:3.12-bullseye" - docker-image-extra-tags: "dockershelf/python:3.12-stable" - - docker-image-name: "dockershelf/python:3.12-sid" - docker-image-extra-tags: "dockershelf/python:3.12-unstable dockershelf/python:3.12" - - docker-image-name: "dockershelf/node:12-bullseye" + - docker-image-name: "dockershelf/node:12-bookworm" docker-image-extra-tags: "dockershelf/node:12-stable" - docker-image-name: "dockershelf/node:12-sid" docker-image-extra-tags: "dockershelf/node:12-unstable dockershelf/node:12" - - docker-image-name: "dockershelf/node:14-bullseye" + - docker-image-name: "dockershelf/node:14-bookworm" docker-image-extra-tags: "dockershelf/node:14-stable" - docker-image-name: "dockershelf/node:14-sid" docker-image-extra-tags: "dockershelf/node:14-unstable dockershelf/node:14" - - docker-image-name: "dockershelf/node:16-bullseye" + - docker-image-name: "dockershelf/node:16-bookworm" docker-image-extra-tags: "dockershelf/node:16-stable" - docker-image-name: "dockershelf/node:16-sid" docker-image-extra-tags: "dockershelf/node:16-unstable dockershelf/node:16" - - docker-image-name: "dockershelf/node:18-bullseye" + - docker-image-name: "dockershelf/node:18-bookworm" docker-image-extra-tags: "dockershelf/node:18-stable" - docker-image-name: "dockershelf/node:18-sid" docker-image-extra-tags: "dockershelf/node:18-unstable dockershelf/node:18" @@ -65,23 +61,27 @@ jobs: with: ref: master fetch-depth: 0 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Installing dependencies run: | - sudo apt-get update - sudo apt-get install debootstrap sudo gem install docker-api serverspec - name: Building docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DEBIAN_SUITE: ${{ matrix.debian-suite }} + DH_USERNAME: ${{ secrets.DH_USERNAME }} + DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" + bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" "${DH_USERNAME}" "${DH_PASSWORD}" "master" - name: Testing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DOCKER_IMAGE_EXTRA_TAGS: ${{ matrix.docker-image-extra-tags }} run: | - bash test-image.sh "${DOCKER_IMAGE_NAME}" "${DOCKER_IMAGE_EXTRA_TAGS}" + bash test-image.sh "${DOCKER_IMAGE_NAME}" "master" - name: Pushing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} @@ -89,10 +89,4 @@ jobs: DH_USERNAME: ${{ secrets.DH_USERNAME }} DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - bash push-image.sh ${DOCKER_IMAGE_NAME} ${DH_USERNAME} ${DH_PASSWORD} - if [ -n "${DOCKER_IMAGE_EXTRA_TAGS}" ]; then - for EXTRA_TAG in ${DOCKER_IMAGE_EXTRA_TAGS}; do - docker tag ${DOCKER_IMAGE_NAME} ${EXTRA_TAG} - bash push-image.sh ${EXTRA_TAG} ${DH_USERNAME} ${DH_PASSWORD} - done - fi + bash push-image.sh "${DOCKER_IMAGE_NAME}" "${DH_USERNAME}" "${DH_PASSWORD}" "${DOCKER_IMAGE_EXTRA_TAGS}" "master" diff --git a/.github/workflows/schedule-master.yml.template b/.github/workflows/schedule-master.yml.template index 85622710..b71b1b8e 100644 --- a/.github/workflows/schedule-master.yml.template +++ b/.github/workflows/schedule-master.yml.template @@ -20,23 +20,27 @@ jobs: with: ref: master fetch-depth: 0 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Installing dependencies run: | - sudo apt-get update - sudo apt-get install debootstrap sudo gem install docker-api serverspec - name: Building docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DEBIAN_SUITE: ${{ matrix.debian-suite }} + DH_USERNAME: ${{ secrets.DH_USERNAME }} + DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" + bash build-image.sh "${DOCKER_IMAGE_NAME}" "${DEBIAN_SUITE}" "${DH_USERNAME}" "${DH_PASSWORD}" "master" - name: Testing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} DOCKER_IMAGE_EXTRA_TAGS: ${{ matrix.docker-image-extra-tags }} run: | - bash test-image.sh "${DOCKER_IMAGE_NAME}" "${DOCKER_IMAGE_EXTRA_TAGS}" + bash test-image.sh "${DOCKER_IMAGE_NAME}" "master" - name: Pushing docker image env: DOCKER_IMAGE_NAME: ${{ matrix.docker-image-name }} @@ -44,10 +48,4 @@ jobs: DH_USERNAME: ${{ secrets.DH_USERNAME }} DH_PASSWORD: ${{ secrets.DH_PASSWORD }} run: | - bash push-image.sh ${DOCKER_IMAGE_NAME} ${DH_USERNAME} ${DH_PASSWORD} - if [ -n "${DOCKER_IMAGE_EXTRA_TAGS}" ]; then - for EXTRA_TAG in ${DOCKER_IMAGE_EXTRA_TAGS}; do - docker tag ${DOCKER_IMAGE_NAME} ${EXTRA_TAG} - bash push-image.sh ${EXTRA_TAG} ${DH_USERNAME} ${DH_PASSWORD} - done - fi + bash push-image.sh "${DOCKER_IMAGE_NAME}" "${DH_USERNAME}" "${DH_PASSWORD}" "${DOCKER_IMAGE_EXTRA_TAGS}" "master" diff --git a/HISTORY.md b/HISTORY.md index e8a7ac02..d8a6b653 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,7 +1,122 @@ # Changelog -## 3.1.0 (2023-01-06) +## 3.2.0 (2023-07-31) + +### Other + +* `[REF]` Fixing tests. [Luis Alejandro Martínez Faneyth] + +* `[REF]` Fixing tests. [Luis Alejandro Martínez Faneyth] + +* `[REF]` Adding support for Debian Trixie. Adding support for arm64 architecture. [Luis Alejandro Martínez Faneyth] + +* Bump pip from 23.2 to 23.2.1. [dependabot[bot]] + +* Bump virtualenv from 20.24.0 to 20.24.2. [dependabot[bot]] + +* Bump wheel from 0.40.0 to 0.41.0. [dependabot[bot]] + +* Bump pip from 23.1.2 to 23.2. [dependabot[bot]] + +* Bump virtualenv from 20.23.1 to 20.24.0. [dependabot[bot]] + +* Bump tox from 4.6.3 to 4.6.4. [dependabot[bot]] + +* Bump lxml from 4.9.2 to 4.9.3. [dependabot[bot]] + +* Bump tox from 4.6.0 to 4.6.3. [dependabot[bot]] + +* Bump setuptools from 67.8.0 to 68.0.0. [dependabot[bot]] + +* Bump virtualenv from 20.23.0 to 20.23.1. [dependabot[bot]] + +* Bump tox from 4.5.2 to 4.6.0. [dependabot[bot]] + +* Bump tox from 4.5.1 to 4.5.2. [dependabot[bot]] + +* Bump setuptools from 67.7.2 to 67.8.0. [dependabot[bot]] + +* Bump virtualenv from 20.22.0 to 20.23.0. [dependabot[bot]] + +* Bump setuptools from 67.6.1 to 67.7.2. [dependabot[bot]] + +* Bump pip from 23.1 to 23.1.2. [dependabot[bot]] + +* Bump tox from 4.4.12 to 4.5.1. [dependabot[bot]] + +* Bump tox from 4.4.11 to 4.4.12. [dependabot[bot]] + +* Bump pip from 23.0.1 to 23.1. [dependabot[bot]] + +* Bump virtualenv from 20.21.0 to 20.22.0. [dependabot[bot]] + +* Bump packaging from 23.0 to 23.1. [dependabot[bot]] + +* Bump tox from 4.4.8 to 4.4.11. [dependabot[bot]] + +* Bump tox from 4.4.7 to 4.4.8. [dependabot[bot]] + +* Bump setuptools from 67.6.0 to 67.6.1. [dependabot[bot]] + +* Bump virtualenv from 20.20.0 to 20.21.0. [dependabot[bot]] + +* Bump tox from 4.4.6 to 4.4.7. [dependabot[bot]] + +* Bump wheel from 0.38.4 to 0.40.0. [dependabot[bot]] + +* Bump hmarr/auto-approve-action from 3.1.0 to 3.2.1. [dependabot[bot]] + +* Bump setuptools from 67.4.0 to 67.6.0. [dependabot[bot]] + +* Bump autopep8 from 2.0.1 to 2.0.2. [dependabot[bot]] + +* Bump virtualenv from 20.19.0 to 20.20.0. [dependabot[bot]] + +* Bump setuptools from 67.3.2 to 67.4.0. [dependabot[bot]] + +* Bump pip from 23.0 to 23.0.1. [dependabot[bot]] + +* Bump tox from 4.4.5 to 4.4.6. [dependabot[bot]] + +* Bump setuptools from 67.2.0 to 67.3.2. [dependabot[bot]] + +* Bump tox from 4.4.4 to 4.4.5. [dependabot[bot]] + +* Bump setuptools from 67.1.0 to 67.2.0. [dependabot[bot]] + +* Bump virtualenv from 20.17.1 to 20.19.0. [dependabot[bot]] + +* Bump setuptools from 66.1.1 to 67.1.0. [dependabot[bot]] + +* Bump pip from 22.3.1 to 23.0. [dependabot[bot]] + +* Bump tox from 4.4.2 to 4.4.4. [dependabot[bot]] + +* Bump setuptools from 66.0.0 to 66.1.1. [dependabot[bot]] + +* Bump tox from 4.3.5 to 4.4.2. [dependabot[bot]] + +* Bump setuptools from 65.7.0 to 66.0.0. [dependabot[bot]] + +* Bump pydocstyle from 6.2.3 to 6.3.0. [dependabot[bot]] + +* Bump tox from 4.2.7 to 4.3.5. [dependabot[bot]] + +* Bump setuptools from 65.6.3 to 65.7.0. [dependabot[bot]] + +* Bump tox from 4.2.3 to 4.2.7. [dependabot[bot]] + +* Bump packaging from 22.0 to 23.0. [dependabot[bot]] + +* Bump pydocstyle from 6.2.2 to 6.2.3. [dependabot[bot]] + +* Bump tox from 4.1.3 to 4.2.3. [dependabot[bot]] + +* Bump pydocstyle from 6.2.0 to 6.2.2. [dependabot[bot]] + + +## 3.1.0 (2023-01-07) ### Changed diff --git a/README.md b/README.md index 67c610f9..0cdc8caa 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![](https://img.shields.io/github/release/Dockershelf/dockershelf.svg)](https://github.com/Dockershelf/dockershelf/releases) [![](https://img.shields.io/github/workflow/status/Dockershelf/dockershelf/Schedule%20(master%20branch))](https://github.com/Dockershelf/dockershelf/actions/workflows/schedule-master.yml) [![](https://img.shields.io/discord/809504357359157288)](https://discord.gg/4Wc7xphH5e) [![](https://cla-assistant.io/readme/badge/Dockershelf/dockershelf)](https://cla-assistant.io/Dockershelf/dockershelf) -Current version: 3.1.0 +Current version: 3.2.0 *Dockershelf* is a repository that serves as a collector for docker recipes that are universal, efficient and slim. We keep adding "shelves", which are holders for the different versions of a popular language or application. @@ -48,9 +48,9 @@ These images are similar to the official ones, but with some opinionated configu |Image |Release |Dockerfile |Pulls |Size | |-------|---------|------------|--------|------| -|[`dockershelf/debian:buster`](https://hub.docker.com/r/dockershelf/debian)|`buster`|[![](https://img.shields.io/badge/-debian%2Fbuster%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/buster/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/buster.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| |[`dockershelf/debian:bullseye`](https://hub.docker.com/r/dockershelf/debian)|`bullseye`|[![](https://img.shields.io/badge/-debian%2Fbullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| |[`dockershelf/debian:bookworm`](https://hub.docker.com/r/dockershelf/debian)|`bookworm`|[![](https://img.shields.io/badge/-debian%2Fbookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| +|[`dockershelf/debian:trixie`](https://hub.docker.com/r/dockershelf/debian)|`trixie`|[![](https://img.shields.io/badge/-debian%2Ftrixie%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/trixie/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/trixie.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| |[`dockershelf/debian:sid`](https://hub.docker.com/r/dockershelf/debian)|`sid`|[![](https://img.shields.io/badge/-debian%2Fsid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| ![](https://raw.githubusercontent.com/Dockershelf/dockershelf/develop/images/table.svg) @@ -72,14 +72,12 @@ These are debian stable/unstable images with python versions installed from the |Image |Release |Dockerfile |Pulls |Size | |-------|---------|------------|--------|------| -|[`dockershelf/python:3.7-bullseye`](https://hub.docker.com/r/dockershelf/python)|`3.7-bullseye`|[![](https://img.shields.io/badge/-python%2F3.7--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.7-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.7-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| +|[`dockershelf/python:3.7-bookworm`](https://hub.docker.com/r/dockershelf/python)|`3.7-bookworm`|[![](https://img.shields.io/badge/-python%2F3.7--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.7-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.7-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| |[`dockershelf/python:3.7-sid`](https://hub.docker.com/r/dockershelf/python)|`3.7-sid`|[![](https://img.shields.io/badge/-python%2F3.7--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.7-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.7-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| -|[`dockershelf/python:3.10-bullseye`](https://hub.docker.com/r/dockershelf/python)|`3.10-bullseye`|[![](https://img.shields.io/badge/-python%2F3.10--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.10-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.10-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| +|[`dockershelf/python:3.10-bookworm`](https://hub.docker.com/r/dockershelf/python)|`3.10-bookworm`|[![](https://img.shields.io/badge/-python%2F3.10--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.10-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.10-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| |[`dockershelf/python:3.10-sid`](https://hub.docker.com/r/dockershelf/python)|`3.10-sid`|[![](https://img.shields.io/badge/-python%2F3.10--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.10-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.10-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| -|[`dockershelf/python:3.11-bullseye`](https://hub.docker.com/r/dockershelf/python)|`3.11-bullseye`|[![](https://img.shields.io/badge/-python%2F3.11--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.11-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.11-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| +|[`dockershelf/python:3.11-bookworm`](https://hub.docker.com/r/dockershelf/python)|`3.11-bookworm`|[![](https://img.shields.io/badge/-python%2F3.11--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.11-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.11-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| |[`dockershelf/python:3.11-sid`](https://hub.docker.com/r/dockershelf/python)|`3.11-sid`|[![](https://img.shields.io/badge/-python%2F3.11--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.11-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.11-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| -|[`dockershelf/python:3.12-bullseye`](https://hub.docker.com/r/dockershelf/python)|`3.12-bullseye`|[![](https://img.shields.io/badge/-python%2F3.12--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.12-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.12-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| -|[`dockershelf/python:3.12-sid`](https://hub.docker.com/r/dockershelf/python)|`3.12-sid`|[![](https://img.shields.io/badge/-python%2F3.12--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.12-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.12-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| ![](https://raw.githubusercontent.com/Dockershelf/dockershelf/develop/images/table.svg) @@ -89,13 +87,13 @@ These are debian stable/unstable images with node versions built using the [node |Image |Release |Dockerfile |Pulls |Size | |-------|---------|------------|--------|------| -|[`dockershelf/node:12-bullseye`](https://hub.docker.com/r/dockershelf/node)|`12-bullseye`|[![](https://img.shields.io/badge/-node%2F12--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/12-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/12-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| +|[`dockershelf/node:12-bookworm`](https://hub.docker.com/r/dockershelf/node)|`12-bookworm`|[![](https://img.shields.io/badge/-node%2F12--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/12-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/12-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| |[`dockershelf/node:12-sid`](https://hub.docker.com/r/dockershelf/node)|`12-sid`|[![](https://img.shields.io/badge/-node%2F12--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/12-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/12-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| -|[`dockershelf/node:14-bullseye`](https://hub.docker.com/r/dockershelf/node)|`14-bullseye`|[![](https://img.shields.io/badge/-node%2F14--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/14-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/14-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| +|[`dockershelf/node:14-bookworm`](https://hub.docker.com/r/dockershelf/node)|`14-bookworm`|[![](https://img.shields.io/badge/-node%2F14--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/14-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/14-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| |[`dockershelf/node:14-sid`](https://hub.docker.com/r/dockershelf/node)|`14-sid`|[![](https://img.shields.io/badge/-node%2F14--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/14-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/14-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| -|[`dockershelf/node:16-bullseye`](https://hub.docker.com/r/dockershelf/node)|`16-bullseye`|[![](https://img.shields.io/badge/-node%2F16--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/16-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/16-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| +|[`dockershelf/node:16-bookworm`](https://hub.docker.com/r/dockershelf/node)|`16-bookworm`|[![](https://img.shields.io/badge/-node%2F16--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/16-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/16-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| |[`dockershelf/node:16-sid`](https://hub.docker.com/r/dockershelf/node)|`16-sid`|[![](https://img.shields.io/badge/-node%2F16--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/16-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/16-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| -|[`dockershelf/node:18-bullseye`](https://hub.docker.com/r/dockershelf/node)|`18-bullseye`|[![](https://img.shields.io/badge/-node%2F18--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/18-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/18-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| +|[`dockershelf/node:18-bookworm`](https://hub.docker.com/r/dockershelf/node)|`18-bookworm`|[![](https://img.shields.io/badge/-node%2F18--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/18-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/18-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| |[`dockershelf/node:18-sid`](https://hub.docker.com/r/dockershelf/node)|`18-sid`|[![](https://img.shields.io/badge/-node%2F18--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/18-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/18-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| ![](https://raw.githubusercontent.com/Dockershelf/dockershelf/develop/images/table.svg) diff --git a/README.md.template b/README.md.template index 254633b4..9c15e3c8 100644 --- a/README.md.template +++ b/README.md.template @@ -4,7 +4,7 @@ [![](https://img.shields.io/github/release/Dockershelf/dockershelf.svg)](https://github.com/Dockershelf/dockershelf/releases) [![](https://img.shields.io/github/workflow/status/Dockershelf/dockershelf/Schedule%20(master%20branch))](https://github.com/Dockershelf/dockershelf/actions/workflows/schedule-master.yml) [![](https://img.shields.io/discord/809504357359157288)](https://discord.gg/4Wc7xphH5e) [![](https://cla-assistant.io/readme/badge/Dockershelf/dockershelf)](https://cla-assistant.io/Dockershelf/dockershelf) -Current version: 3.1.0 +Current version: 3.2.0 *Dockershelf* is a repository that serves as a collector for docker recipes that are universal, efficient and slim. We keep adding "shelves", which are holders for the different versions of a popular language or application. diff --git a/build-image.sh b/build-image.sh index 604ef04a..d364b99a 100644 --- a/build-image.sh +++ b/build-image.sh @@ -19,33 +19,52 @@ # Exit early if there are errors and be verbose set -exuo pipefail +# Some initial configuration +BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Load helper functions -BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source "${BASEDIR}/library.sh" +# eg. dockershelf/debian:sid +DOCKER_IMAGE_NAME="${1}" +# eg. unstable +DEBIAN_SUITE="${2}" +DH_USERNAME="${3}" +DH_PASSWORD="${4}" +BRANCH="${5}" + +if [ "${BRANCH}" == "develop" ]; then + DOCKER_IMAGE_NAME_SUFFIX="-dev" +fi + # Exit if we didn't get an image to build -if [ -z "${1}" ]; then +if [ -z "${DOCKER_IMAGE_NAME}" ]; then msgerror "No Docker image name was given. Aborting." exit 1 fi -# Some initial configuration -DOCKER_IMAGE_NAME="${1}" -DEBIAN_SUITE="${2}" +# eg. sid DOCKER_IMAGE_TAG="${DOCKER_IMAGE_NAME##*:}" +# eg. debian:stable DOCKER_IMAGE_TARGET="${DOCKER_IMAGE_NAME##dockershelf/}" +# eg. /home/user/dockershelf/debian/sid DOCKER_IMAGE_DIR="${BASEDIR}/${DOCKER_IMAGE_TARGET/://}" +# eg. debian DOCKER_IMAGE_TYPE="${DOCKER_IMAGE_TARGET%%:*}" +# eg. /home/user/dockershelf/debian DOCKER_IMAGE_TYPE_DIR="${BASEDIR}/${DOCKER_IMAGE_TYPE}" -BUILD_DATE="$( date -u +"%Y-%m-%dT%H:%M:%SZ" )" +# eg. dockershelf/debian:sid-test +DOCKER_TEST_IMAGE_NAME="${DOCKER_IMAGE_NAME}-test${DOCKER_IMAGE_NAME_SUFFIX}" + +# Current date +BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" # Current commit -VCS_REF="$( git rev-parse --short HEAD )" +VCS_REF="$(git rev-parse --short HEAD)" # Let's get the tag that matches the current commit # Or get me the commit, which means we are building an unstable image if git describe --tags ${VCS_REF} >/dev/null 2>&1; then - VERSION="$( git describe --tags ${VCS_REF} )" + VERSION="$(git describe --tags ${VCS_REF})" else VERSION="${VCS_REF}" fi @@ -66,43 +85,36 @@ if [ -f "${DOCKER_IMAGE_TYPE_DIR}/build-image.sh" ]; then cp "${DOCKER_IMAGE_TYPE_DIR}/build-image.sh" "${DOCKER_IMAGE_DIR}" fi -# Create a base filesystem if we are building a debian image -if [ "${DOCKER_IMAGE_TYPE}" == "debian" ]; then - cd "${DOCKER_IMAGE_DIR}" && \ - sudo docker run \ - -v "${DOCKER_IMAGE_DIR}:/tmp/dockershelf" \ - -w "/tmp/dockershelf" \ - debian:stable \ - bash -c "apt-get update && \ - apt-get install -y debootstrap && \ - bash build-image.sh ${DOCKER_IMAGE_TAG} ${DEBIAN_SUITE}" -fi - # Copy latex sample if we are building Latex if [ "${DOCKER_IMAGE_TYPE}" == "latex" ]; then cp "${DOCKER_IMAGE_TYPE_DIR}/sample.tex" "${DOCKER_IMAGE_DIR}" fi -# Build the docker image -if [ "${DOCKER_IMAGE_TYPE}" == "debian" ]; then - cd "${DOCKER_IMAGE_DIR}" && \ - sudo docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ - --build-arg VCS_REF="${VCS_REF}" --build-arg VERSION="${VERSION}" \ - -t ${DOCKER_IMAGE_NAME} . -else - cd "${DOCKER_IMAGE_DIR}" && \ - docker build --build-arg BUILD_DATE="${BUILD_DATE}" \ - --build-arg VCS_REF="${VCS_REF}" --build-arg VERSION="${VERSION}" \ - -t ${DOCKER_IMAGE_NAME} . +if [ "${DOCKER_IMAGE_TYPE}" != "debian" ] && [ "${BRANCH}" == "develop" ]; then + sed -i -r 's|FROM\s*(.*?)|FROM \1-dev|g' "${DOCKER_IMAGE_DIR}/Dockerfile" fi +# workaround to exporting the multi-arch image from buildkit to docker +# we push the image to dockerhub with a -test suffix and then we +# pull it into docker and rename it +docker login --username ${DH_USERNAME} --password ${DH_PASSWORD} + +# Build the docker image +cd "${DOCKER_IMAGE_DIR}" && + docker buildx build --push \ + --platform linux/arm64,linux/amd64 \ + --build-arg BUILD_DATE="${BUILD_DATE}" \ + --build-arg VCS_REF="${VCS_REF}" \ + --build-arg VERSION="${VERSION}" \ + -t ${DOCKER_TEST_IMAGE_NAME} . + +docker pull --platform linux/arm64 ${DOCKER_TEST_IMAGE_NAME} +docker tag ${DOCKER_TEST_IMAGE_NAME} ${DOCKER_TEST_IMAGE_NAME}-arm64 + +docker pull --platform linux/amd64 ${DOCKER_TEST_IMAGE_NAME} +docker tag ${DOCKER_TEST_IMAGE_NAME} ${DOCKER_TEST_IMAGE_NAME}-amd64 + # Remove unnecessary files -if [ "${DOCKER_IMAGE_TYPE}" == "debian" ]; then - sudo rm -rfv "${DOCKER_IMAGE_DIR}"/*.sh "${DOCKER_IMAGE_DIR}"/*.js \ - "${DOCKER_IMAGE_DIR}"/*.tex "${DOCKER_IMAGE_DIR}"/*.conf \ - "${DOCKER_IMAGE_DIR}/base" -else - rm -rfv "${DOCKER_IMAGE_DIR}"/*.sh "${DOCKER_IMAGE_DIR}"/*.js \ - "${DOCKER_IMAGE_DIR}"/*.tex "${DOCKER_IMAGE_DIR}"/*.conf \ - "${DOCKER_IMAGE_DIR}/base" -fi +rm -rfv "${DOCKER_IMAGE_DIR}"/*.sh "${DOCKER_IMAGE_DIR}"/*.js \ + "${DOCKER_IMAGE_DIR}"/*.tex "${DOCKER_IMAGE_DIR}"/*.conf \ + "${DOCKER_IMAGE_DIR}/base" diff --git a/debian/Dockerfile.template b/debian/Dockerfile.template index 6269a20b..ef586c90 100644 --- a/debian/Dockerfile.template +++ b/debian/Dockerfile.template @@ -1,3 +1,18 @@ +# debootstrap stage +# ---------------------------------- +FROM debian:stable AS builder + +RUN apt-get update && \ + apt-get install -y debootstrap + +ADD . /tmp/debootstrap + +WORKDIR /tmp/debootstrap + +RUN bash build-image.sh "%%DEBIAN_RELEASE%%" "%%DEBIAN_SUITE%%" + +# final stage +# ---------------------------------- FROM %%BASE_IMAGE%% ARG BUILD_DATE @@ -28,6 +43,6 @@ ENV LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8" LC_ALL="en_US.UTF-8" \ TERM="xterm" DEBIAN_FRONTEND="noninteractive" DEBIAN_RELEASE="%%DEBIAN_RELEASE%%" \ DEBIAN_SUITE="%%DEBIAN_SUITE%%" -ADD base / +COPY --from=builder /tmp/debootstrap/base / CMD ["/bin/bash"] \ No newline at end of file diff --git a/debian/README.md b/debian/README.md index 2d21fc1d..66bb0e98 100644 --- a/debian/README.md +++ b/debian/README.md @@ -8,9 +8,9 @@ |Image |Release |Dockerfile |Pulls |Size | |-------|---------|------------|--------|------| -|[`dockershelf/debian:buster`](https://hub.docker.com/r/dockershelf/debian)|`buster`|[![](https://img.shields.io/badge/-debian%2Fbuster%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/buster/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/buster.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| |[`dockershelf/debian:bullseye`](https://hub.docker.com/r/dockershelf/debian)|`bullseye`|[![](https://img.shields.io/badge/-debian%2Fbullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| |[`dockershelf/debian:bookworm`](https://hub.docker.com/r/dockershelf/debian)|`bookworm`|[![](https://img.shields.io/badge/-debian%2Fbookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| +|[`dockershelf/debian:trixie`](https://hub.docker.com/r/dockershelf/debian)|`trixie`|[![](https://img.shields.io/badge/-debian%2Ftrixie%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/trixie/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/trixie.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| |[`dockershelf/debian:sid`](https://hub.docker.com/r/dockershelf/debian)|`sid`|[![](https://img.shields.io/badge/-debian%2Fsid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/debian/sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/debian?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)|[![](https://img.shields.io/docker/image-size/dockershelf/debian/sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/debian)| ![](https://raw.githubusercontent.com/Dockershelf/dockershelf/develop/images/table.svg) diff --git a/debian/bookworm/Dockerfile b/debian/bookworm/Dockerfile index 9d7614e3..2dc2de19 100644 --- a/debian/bookworm/Dockerfile +++ b/debian/bookworm/Dockerfile @@ -1,3 +1,18 @@ +# debootstrap stage +# ---------------------------------- +FROM debian:stable AS builder + +RUN apt-get update && \ + apt-get install -y debootstrap + +ADD . /tmp/debootstrap + +WORKDIR /tmp/debootstrap + +RUN bash build-image.sh "bookworm" "stable" + +# final stage +# ---------------------------------- FROM scratch ARG BUILD_DATE @@ -26,8 +41,8 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ ENV LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8" LC_ALL="en_US.UTF-8" \ TERM="xterm" DEBIAN_FRONTEND="noninteractive" DEBIAN_RELEASE="bookworm" \ - DEBIAN_SUITE="testing" + DEBIAN_SUITE="stable" -ADD base / +COPY --from=builder /tmp/debootstrap/base / CMD ["/bin/bash"] \ No newline at end of file diff --git a/debian/build-image.sh b/debian/build-image.sh index 53a11c88..42674be0 100755 --- a/debian/build-image.sh +++ b/debian/build-image.sh @@ -20,10 +20,10 @@ set -exuo pipefail # Some initial configuration -ARCH="amd64" -VARIANT="minbase" DEBIAN_RELEASE="${1}" DEBIAN_SUITE="${2}" + +VARIANT="minbase" DEBMIRROR="http://deb.debian.org/debian" SECMIRROR="http://deb.debian.org/debian-security" BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -54,12 +54,12 @@ if [ -d "${TARGET}" ]; then fi msginfo "Downloading packages for base filesystem ..." -debootstrap --verbose --variant "${VARIANT}" --arch "${ARCH}" \ +debootstrap --verbose --variant "${VARIANT}" \ --download-only --no-check-gpg --no-check-certificate --merged-usr \ "${DEBIAN_RELEASE}" "${TARGET}" msginfo "Building base filesystem ..." -debootstrap --verbose --variant "${VARIANT}" --arch "${ARCH}" \ +debootstrap --verbose --variant "${VARIANT}" \ --no-check-gpg --no-check-certificate --merged-usr \ "${DEBIAN_RELEASE}" "${TARGET}" diff --git a/debian/bullseye/Dockerfile b/debian/bullseye/Dockerfile index d1cab39e..c95fcc68 100644 --- a/debian/bullseye/Dockerfile +++ b/debian/bullseye/Dockerfile @@ -1,3 +1,18 @@ +# debootstrap stage +# ---------------------------------- +FROM debian:stable AS builder + +RUN apt-get update && \ + apt-get install -y debootstrap + +ADD . /tmp/debootstrap + +WORKDIR /tmp/debootstrap + +RUN bash build-image.sh "bullseye" "oldstable" + +# final stage +# ---------------------------------- FROM scratch ARG BUILD_DATE @@ -26,8 +41,8 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ ENV LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8" LC_ALL="en_US.UTF-8" \ TERM="xterm" DEBIAN_FRONTEND="noninteractive" DEBIAN_RELEASE="bullseye" \ - DEBIAN_SUITE="stable" + DEBIAN_SUITE="oldstable" -ADD base / +COPY --from=builder /tmp/debootstrap/base / CMD ["/bin/bash"] \ No newline at end of file diff --git a/debian/sid/Dockerfile b/debian/sid/Dockerfile index e9587732..8bc4e650 100644 --- a/debian/sid/Dockerfile +++ b/debian/sid/Dockerfile @@ -1,3 +1,18 @@ +# debootstrap stage +# ---------------------------------- +FROM debian:stable AS builder + +RUN apt-get update && \ + apt-get install -y debootstrap + +ADD . /tmp/debootstrap + +WORKDIR /tmp/debootstrap + +RUN bash build-image.sh "sid" "unstable" + +# final stage +# ---------------------------------- FROM scratch ARG BUILD_DATE @@ -28,6 +43,6 @@ ENV LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8" LC_ALL="en_US.UTF-8" \ TERM="xterm" DEBIAN_FRONTEND="noninteractive" DEBIAN_RELEASE="sid" \ DEBIAN_SUITE="unstable" -ADD base / +COPY --from=builder /tmp/debootstrap/base / CMD ["/bin/bash"] \ No newline at end of file diff --git a/debian/test-image.rb b/debian/test-image.rb index 1f7d563b..6ce31b36 100644 --- a/debian/test-image.rb +++ b/debian/test-image.rb @@ -1,10 +1,13 @@ require "docker-api" require "serverspec" -describe "%s %s container" % [ENV["DOCKER_IMAGE_TYPE"], ENV["DOCKER_IMAGE_TAG"]] do +describe "%s %s container (%s)" % [ENV["DOCKER_IMAGE_TYPE"], ENV["DOCKER_IMAGE_TAG"], ENV["DOCKER_IMAGE_ARCH"]] do before(:all) do + Docker.options[:read_timeout] = 1200 + Docker.options[:write_timeout] = 1200 + @image = Docker::Image.get(ENV["DOCKER_IMAGE_NAME"]) - @container = Docker::Container.create('Image' => @image.id, 'Tty' => true) + @container = Docker::Container.create('Image' => @image.id, 'Tty' => true, 'Cmd' => 'bash') @container.start set :backend, :docker @@ -23,8 +26,13 @@ expect(file('/etc/os-release').content).to match(Regexp.new("PRETTY_NAME=.*" % ENV["DOCKER_IMAGE_TAG"])) end - it "OS architecture should be x86_64" do - expect(os[:arch]).to eq("x86_64") + it "OS architecture should be %s" % ENV["DOCKER_IMAGE_ARCH"] do + case ENV['DOCKER_IMAGE_ARCH'] + when "amd64" + expect(os[:arch]).to eq("x86_64") + when "arm64" + expect(os[:arch]).to eq("aarch64") + end end it "should have a proper root user" do @@ -65,10 +73,10 @@ it "should have these locales configured" do case ENV['DOCKER_IMAGE_TAG'] - when "bookworm", "sid" - expect(command("locale -a").stdout.split("\n")).to include("C", "C.utf8", "en_US.utf8", "POSIX") - else + when "bullseye" expect(command("locale -a").stdout.split("\n")).to include("C", "C.UTF-8", "en_US.utf8", "POSIX") + else + expect(command("locale -a").stdout.split("\n")).to include("C", "C.utf8", "en_US.utf8", "POSIX") end expect(command("locale").stdout.split("\n")).to include("LANG=en_US.UTF-8") end diff --git a/debian/buster/Dockerfile b/debian/trixie/Dockerfile similarity index 66% rename from debian/buster/Dockerfile rename to debian/trixie/Dockerfile index a727006d..df520386 100644 --- a/debian/buster/Dockerfile +++ b/debian/trixie/Dockerfile @@ -1,3 +1,18 @@ +# debootstrap stage +# ---------------------------------- +FROM debian:stable AS builder + +RUN apt-get update && \ + apt-get install -y debootstrap + +ADD . /tmp/debootstrap + +WORKDIR /tmp/debootstrap + +RUN bash build-image.sh "trixie" "testing" + +# final stage +# ---------------------------------- FROM scratch ARG BUILD_DATE @@ -5,8 +20,8 @@ ARG VCS_REF ARG VERSION LABEL org.label-schema.build-date=${BUILD_DATE} \ - org.label-schema.name="debian-buster" \ - org.label-schema.description="A Debian buster minimal image built from scratch" \ + org.label-schema.name="debian-trixie" \ + org.label-schema.description="A Debian trixie minimal image built from scratch" \ org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ org.label-schema.vcs-ref=${VCS_REF} \ org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ @@ -14,8 +29,8 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.version=${VERSION} \ org.label-schema.schema-version="1.0.0-rc.1" \ org.opencontainers.image.created=${BUILD_DATE} \ - org.opencontainers.image.title="debian-buster" \ - org.opencontainers.image.description="A Debian buster minimal image built from scratch" \ + org.opencontainers.image.title="debian-trixie" \ + org.opencontainers.image.description="A Debian trixie minimal image built from scratch" \ org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ org.opencontainers.image.revision=${VCS_REF} \ org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ @@ -25,9 +40,9 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ maintainer="Luis Alejandro Martínez Faneyth " ENV LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8" LC_ALL="en_US.UTF-8" \ - TERM="xterm" DEBIAN_FRONTEND="noninteractive" DEBIAN_RELEASE="buster" \ - DEBIAN_SUITE="oldstable" + TERM="xterm" DEBIAN_FRONTEND="noninteractive" DEBIAN_RELEASE="trixie" \ + DEBIAN_SUITE="testing" -ADD base / +COPY --from=builder /tmp/debootstrap/base / CMD ["/bin/bash"] \ No newline at end of file diff --git a/latex/build-image.sh b/latex/build-image.sh index b02ecd5a..83448fbd 100755 --- a/latex/build-image.sh +++ b/latex/build-image.sh @@ -30,7 +30,16 @@ if [ "${LATEX_VER_NUM}" == "basic" ]; then LATEX_PKGS="texlive-fonts-recommended texlive-latex-base texlive-latex-extra \ texlive-latex-recommended" else - LATEX_PKGS="texlive-full" + LATEX_PKGS="asymptote biber chktex cm-super context dvidvi dvipng \ + feynmf fragmaster info lacheck latex-cjk-all latexdiff \ + latexmk lcdf-typetools lmodern prerex psutils purifyeps \ + t1utils tex-gyre texinfo texlive-base texlive-bibtex-extra \ + texlive-binaries texlive-extra-utils texlive-formats-extra \ + texlive-games texlive-humanities texlive-lang-english \ + texlive-latex-base texlive-latex-extra texlive-latex-recommended \ + texlive-luatex texlive-metapost texlive-music texlive-pictures \ + texlive-plain-generic texlive-pstricks texlive-publishers \ + texlive-science texlive-xetex tipa vprerex" fi # Load helper functions diff --git a/latex/test-image.rb b/latex/test-image.rb index 2ec2518a..2cab93d4 100644 --- a/latex/test-image.rb +++ b/latex/test-image.rb @@ -19,8 +19,11 @@ describe "%s %s container" % [ENV["DOCKER_IMAGE_TYPE"], ENV["DOCKER_IMAGE_TAG"]] do before(:all) do + Docker.options[:read_timeout] = 1200 + Docker.options[:write_timeout] = 1200 + @image = Docker::Image.get(ENV["DOCKER_IMAGE_NAME"]) - @container = Docker::Container.create('Image' => @image.id, 'Tty' => true) + @container = Docker::Container.create('Image' => @image.id, 'Tty' => true, 'Cmd' => 'bash') @container.start set :backend, :docker diff --git a/node/12-bullseye/Dockerfile b/node/12-bookworm/Dockerfile similarity index 94% rename from node/12-bullseye/Dockerfile rename to node/12-bookworm/Dockerfile index 266a8fad..0f0eddc5 100644 --- a/node/12-bullseye/Dockerfile +++ b/node/12-bookworm/Dockerfile @@ -1,4 +1,4 @@ -FROM dockershelf/debian:bullseye +FROM dockershelf/debian:bookworm ARG BUILD_DATE ARG VCS_REF @@ -6,7 +6,7 @@ ARG VERSION LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.name="node12" \ - org.label-schema.description="A Node 12 image based on Debian bullseye" \ + org.label-schema.description="A Node 12 image based on Debian bookworm" \ org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ org.label-schema.vcs-ref=${VCS_REF} \ org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ @@ -15,7 +15,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.schema-version="1.0.0-rc.1" \ org.opencontainers.image.created=${BUILD_DATE} \ org.opencontainers.image.title="node12" \ - org.opencontainers.image.description="An Node 12 image based on Debian bullseye" \ + org.opencontainers.image.description="An Node 12 image based on Debian bookworm" \ org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ org.opencontainers.image.revision=${VCS_REF} \ org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ diff --git a/node/14-bullseye/Dockerfile b/node/14-bookworm/Dockerfile similarity index 94% rename from node/14-bullseye/Dockerfile rename to node/14-bookworm/Dockerfile index 988239ce..56648024 100644 --- a/node/14-bullseye/Dockerfile +++ b/node/14-bookworm/Dockerfile @@ -1,4 +1,4 @@ -FROM dockershelf/debian:bullseye +FROM dockershelf/debian:bookworm ARG BUILD_DATE ARG VCS_REF @@ -6,7 +6,7 @@ ARG VERSION LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.name="node14" \ - org.label-schema.description="A Node 14 image based on Debian bullseye" \ + org.label-schema.description="A Node 14 image based on Debian bookworm" \ org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ org.label-schema.vcs-ref=${VCS_REF} \ org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ @@ -15,7 +15,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.schema-version="1.0.0-rc.1" \ org.opencontainers.image.created=${BUILD_DATE} \ org.opencontainers.image.title="node14" \ - org.opencontainers.image.description="An Node 14 image based on Debian bullseye" \ + org.opencontainers.image.description="An Node 14 image based on Debian bookworm" \ org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ org.opencontainers.image.revision=${VCS_REF} \ org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ diff --git a/node/16-bullseye/Dockerfile b/node/16-bookworm/Dockerfile similarity index 94% rename from node/16-bullseye/Dockerfile rename to node/16-bookworm/Dockerfile index cb6d832f..925a2938 100644 --- a/node/16-bullseye/Dockerfile +++ b/node/16-bookworm/Dockerfile @@ -1,4 +1,4 @@ -FROM dockershelf/debian:bullseye +FROM dockershelf/debian:bookworm ARG BUILD_DATE ARG VCS_REF @@ -6,7 +6,7 @@ ARG VERSION LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.name="node16" \ - org.label-schema.description="A Node 16 image based on Debian bullseye" \ + org.label-schema.description="A Node 16 image based on Debian bookworm" \ org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ org.label-schema.vcs-ref=${VCS_REF} \ org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ @@ -15,7 +15,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.schema-version="1.0.0-rc.1" \ org.opencontainers.image.created=${BUILD_DATE} \ org.opencontainers.image.title="node16" \ - org.opencontainers.image.description="An Node 16 image based on Debian bullseye" \ + org.opencontainers.image.description="An Node 16 image based on Debian bookworm" \ org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ org.opencontainers.image.revision=${VCS_REF} \ org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ diff --git a/node/18-bullseye/Dockerfile b/node/18-bookworm/Dockerfile similarity index 94% rename from node/18-bullseye/Dockerfile rename to node/18-bookworm/Dockerfile index e459274a..64ea7494 100644 --- a/node/18-bullseye/Dockerfile +++ b/node/18-bookworm/Dockerfile @@ -1,4 +1,4 @@ -FROM dockershelf/debian:bullseye +FROM dockershelf/debian:bookworm ARG BUILD_DATE ARG VCS_REF @@ -6,7 +6,7 @@ ARG VERSION LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.name="node18" \ - org.label-schema.description="A Node 18 image based on Debian bullseye" \ + org.label-schema.description="A Node 18 image based on Debian bookworm" \ org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ org.label-schema.vcs-ref=${VCS_REF} \ org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ @@ -15,7 +15,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.schema-version="1.0.0-rc.1" \ org.opencontainers.image.created=${BUILD_DATE} \ org.opencontainers.image.title="node18" \ - org.opencontainers.image.description="An Node 18 image based on Debian bullseye" \ + org.opencontainers.image.description="An Node 18 image based on Debian bookworm" \ org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ org.opencontainers.image.revision=${VCS_REF} \ org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ diff --git a/node/README.md b/node/README.md index 42ce61f4..74924bca 100644 --- a/node/README.md +++ b/node/README.md @@ -8,13 +8,13 @@ |Image |Release |Dockerfile |Pulls |Size | |-------|---------|------------|--------|------| -|[`dockershelf/node:12-bullseye`](https://hub.docker.com/r/dockershelf/node)|`12-bullseye`|[![](https://img.shields.io/badge/-node%2F12--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/12-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/12-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| +|[`dockershelf/node:12-bookworm`](https://hub.docker.com/r/dockershelf/node)|`12-bookworm`|[![](https://img.shields.io/badge/-node%2F12--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/12-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/12-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| |[`dockershelf/node:12-sid`](https://hub.docker.com/r/dockershelf/node)|`12-sid`|[![](https://img.shields.io/badge/-node%2F12--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/12-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/12-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| -|[`dockershelf/node:14-bullseye`](https://hub.docker.com/r/dockershelf/node)|`14-bullseye`|[![](https://img.shields.io/badge/-node%2F14--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/14-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/14-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| +|[`dockershelf/node:14-bookworm`](https://hub.docker.com/r/dockershelf/node)|`14-bookworm`|[![](https://img.shields.io/badge/-node%2F14--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/14-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/14-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| |[`dockershelf/node:14-sid`](https://hub.docker.com/r/dockershelf/node)|`14-sid`|[![](https://img.shields.io/badge/-node%2F14--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/14-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/14-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| -|[`dockershelf/node:16-bullseye`](https://hub.docker.com/r/dockershelf/node)|`16-bullseye`|[![](https://img.shields.io/badge/-node%2F16--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/16-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/16-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| +|[`dockershelf/node:16-bookworm`](https://hub.docker.com/r/dockershelf/node)|`16-bookworm`|[![](https://img.shields.io/badge/-node%2F16--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/16-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/16-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| |[`dockershelf/node:16-sid`](https://hub.docker.com/r/dockershelf/node)|`16-sid`|[![](https://img.shields.io/badge/-node%2F16--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/16-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/16-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| -|[`dockershelf/node:18-bullseye`](https://hub.docker.com/r/dockershelf/node)|`18-bullseye`|[![](https://img.shields.io/badge/-node%2F18--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/18-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/18-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| +|[`dockershelf/node:18-bookworm`](https://hub.docker.com/r/dockershelf/node)|`18-bookworm`|[![](https://img.shields.io/badge/-node%2F18--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/18-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/18-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| |[`dockershelf/node:18-sid`](https://hub.docker.com/r/dockershelf/node)|`18-sid`|[![](https://img.shields.io/badge/-node%2F18--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/node/18-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/node?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)|[![](https://img.shields.io/docker/image-size/dockershelf/node/18-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/node)| ![](https://raw.githubusercontent.com/Dockershelf/dockershelf/develop/images/table.svg) diff --git a/node/test-image.rb b/node/test-image.rb index 9fb654db..c9492bba 100644 --- a/node/test-image.rb +++ b/node/test-image.rb @@ -19,6 +19,9 @@ describe "%s %s container" % [ENV["DOCKER_IMAGE_TYPE"], ENV["DOCKER_IMAGE_TAG"]] do before(:all) do + Docker.options[:read_timeout] = 1200 + Docker.options[:write_timeout] = 1200 + @image = Docker::Image.get(ENV["DOCKER_IMAGE_NAME"]) @container = Docker::Container.create('Image' => @image.id, 'Tty' => true, 'Cmd' => 'bash') @container.start diff --git a/push-image.sh b/push-image.sh index dca45297..cfd548dd 100644 --- a/push-image.sh +++ b/push-image.sh @@ -17,29 +17,75 @@ # along with this program. If not, see . # Exit early if there are errors and be verbose -set -euo pipefail +set -exuo pipefail -# Load helper functions +# Some initial configuration BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +# Load helper functions source "${BASEDIR}/library.sh" -# Exit if we didn't get an image to build -if [ -z "${1}" ]; then +DOCKER_IMAGE_NAME="${1}" +DH_USERNAME="${2}" +DH_PASSWORD="${3}" +DOCKER_IMAGE_EXTRA_TAGS="${4}" +BRANCH="${5}" + +if [ "${BRANCH}" == "develop" ]; then + DOCKER_IMAGE_NAME_SUFFIX="-dev" +fi + +# Exit if we didn't get an image to push +if [ -z "${DOCKER_IMAGE_NAME}" ]; then msgerror "No Docker image name was given. Aborting." exit 1 fi -# Exit if we didn't get an image to build -if [ -z "${2}" ] || [ -z "${3}" ]; then +# Exit if we didn't get credentials +if [ -z "${DH_USERNAME}" ] || [ -z "${DH_PASSWORD}" ]; then msgerror "Username or Password for Docker Hub were not given. Aborting." exit 1 fi -# Some initial configuration -DOCKER_IMAGE_NAME="${1}" -DH_USERNAME="${2}" -DH_PASSWORD="${3}" +DOCKER_TEST_IMAGE_NAME="${DOCKER_IMAGE_NAME}-test${DOCKER_IMAGE_NAME_SUFFIX}" +DOCKER_FINAL_IMAGE_NAME="${DOCKER_IMAGE_NAME}${DOCKER_IMAGE_NAME_SUFFIX}" -# Login & push -cmdretry docker login --username ${DH_USERNAME} --password ${DH_PASSWORD} -cmdretry docker push ${DOCKER_IMAGE_NAME} \ No newline at end of file +# Login +docker login --username ${DH_USERNAME} --password ${DH_PASSWORD} + +docker tag ${DOCKER_TEST_IMAGE_NAME}-arm64 ${DOCKER_FINAL_IMAGE_NAME}-arm64 +docker push ${DOCKER_FINAL_IMAGE_NAME}-arm64 + +docker tag ${DOCKER_TEST_IMAGE_NAME}-amd64 ${DOCKER_FINAL_IMAGE_NAME}-amd64 +docker push ${DOCKER_FINAL_IMAGE_NAME}-amd64 + +docker manifest rm ${DOCKER_FINAL_IMAGE_NAME} || true +docker manifest create ${DOCKER_FINAL_IMAGE_NAME} \ + --amend ${DOCKER_FINAL_IMAGE_NAME}-arm64 \ + --amend ${DOCKER_FINAL_IMAGE_NAME}-amd64 +docker manifest inspect ${DOCKER_FINAL_IMAGE_NAME} +docker manifest push --purge ${DOCKER_FINAL_IMAGE_NAME} + +if [ -n "${DOCKER_IMAGE_EXTRA_TAGS}" ]; then + for EXTRA_TAG in ${DOCKER_IMAGE_EXTRA_TAGS}; do + + DOCKER_EXTRA_TAG_IMAGE_NAME="${EXTRA_TAG}${DOCKER_IMAGE_NAME_SUFFIX}" + + # Login + docker login --username ${DH_USERNAME} --password ${DH_PASSWORD} + + docker tag ${DOCKER_TEST_IMAGE_NAME}-arm64 ${DOCKER_EXTRA_TAG_IMAGE_NAME}-arm64 + docker push ${DOCKER_EXTRA_TAG_IMAGE_NAME}-arm64 + + docker tag ${DOCKER_TEST_IMAGE_NAME}-amd64 ${DOCKER_EXTRA_TAG_IMAGE_NAME}-amd64 + docker push ${DOCKER_EXTRA_TAG_IMAGE_NAME}-amd64 + + docker manifest rm ${DOCKER_EXTRA_TAG_IMAGE_NAME} || true + docker manifest create ${DOCKER_EXTRA_TAG_IMAGE_NAME} \ + --amend ${DOCKER_EXTRA_TAG_IMAGE_NAME}-arm64 \ + --amend ${DOCKER_EXTRA_TAG_IMAGE_NAME}-amd64 + docker manifest inspect ${DOCKER_EXTRA_TAG_IMAGE_NAME} + docker manifest push --purge ${DOCKER_EXTRA_TAG_IMAGE_NAME} + + + done +fi diff --git a/python/3.10-bullseye/Dockerfile b/python/3.10-bookworm/Dockerfile similarity index 91% rename from python/3.10-bullseye/Dockerfile rename to python/3.10-bookworm/Dockerfile index f8dc26ee..5f0a62c9 100644 --- a/python/3.10-bullseye/Dockerfile +++ b/python/3.10-bookworm/Dockerfile @@ -1,4 +1,4 @@ -FROM dockershelf/debian:bullseye +FROM dockershelf/debian:bookworm ARG BUILD_DATE ARG VCS_REF @@ -6,7 +6,7 @@ ARG VERSION LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.name="python3.10" \ - org.label-schema.description="A Python 3.10 image based on Debian bullseye" \ + org.label-schema.description="A Python 3.10 image based on Debian bookworm" \ org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ org.label-schema.vcs-ref=${VCS_REF} \ org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ @@ -15,7 +15,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.schema-version="1.0.0-rc.1" \ org.opencontainers.image.created=${BUILD_DATE} \ org.opencontainers.image.title="python3.10" \ - org.opencontainers.image.description="A Python 3.10 image based on Debian bullseye" \ + org.opencontainers.image.description="A Python 3.10 image based on Debian bookworm" \ org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ org.opencontainers.image.revision=${VCS_REF} \ org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ @@ -24,7 +24,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.opencontainers.image.licenses="GPL-3.0" \ maintainer="Luis Alejandro Martínez Faneyth " -ENV PYTHON_VER_NUM="3.10" PYTHON_DEBIAN_SUITE="bullseye" \ +ENV PYTHON_VER_NUM="3.10" PYTHON_DEBIAN_SUITE="bookworm" \ PYTHONIOENCODING="UTF-8" PYTHONPATH="/usr/lib/python3.10/dist-packages:/usr/lib/python3.10/site-packages" COPY build-image.sh library.sh /usr/share/dockershelf/python/ diff --git a/python/3.11-bullseye/Dockerfile b/python/3.11-bookworm/Dockerfile similarity index 91% rename from python/3.11-bullseye/Dockerfile rename to python/3.11-bookworm/Dockerfile index 5820262f..89ad0ebf 100644 --- a/python/3.11-bullseye/Dockerfile +++ b/python/3.11-bookworm/Dockerfile @@ -1,4 +1,4 @@ -FROM dockershelf/debian:bullseye +FROM dockershelf/debian:bookworm ARG BUILD_DATE ARG VCS_REF @@ -6,7 +6,7 @@ ARG VERSION LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.name="python3.11" \ - org.label-schema.description="A Python 3.11 image based on Debian bullseye" \ + org.label-schema.description="A Python 3.11 image based on Debian bookworm" \ org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ org.label-schema.vcs-ref=${VCS_REF} \ org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ @@ -15,7 +15,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.schema-version="1.0.0-rc.1" \ org.opencontainers.image.created=${BUILD_DATE} \ org.opencontainers.image.title="python3.11" \ - org.opencontainers.image.description="A Python 3.11 image based on Debian bullseye" \ + org.opencontainers.image.description="A Python 3.11 image based on Debian bookworm" \ org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ org.opencontainers.image.revision=${VCS_REF} \ org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ @@ -24,7 +24,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.opencontainers.image.licenses="GPL-3.0" \ maintainer="Luis Alejandro Martínez Faneyth " -ENV PYTHON_VER_NUM="3.11" PYTHON_DEBIAN_SUITE="bullseye" \ +ENV PYTHON_VER_NUM="3.11" PYTHON_DEBIAN_SUITE="bookworm" \ PYTHONIOENCODING="UTF-8" PYTHONPATH="/usr/lib/python3.11/dist-packages:/usr/lib/python3.11/site-packages" COPY build-image.sh library.sh /usr/share/dockershelf/python/ diff --git a/python/3.12-bullseye/Dockerfile b/python/3.12-bullseye/Dockerfile deleted file mode 100644 index 5e8ff947..00000000 --- a/python/3.12-bullseye/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM dockershelf/debian:bullseye - -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION - -LABEL org.label-schema.build-date=${BUILD_DATE} \ - org.label-schema.name="python3.12" \ - org.label-schema.description="A Python 3.12 image based on Debian bullseye" \ - org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ - org.label-schema.vcs-ref=${VCS_REF} \ - org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ - org.label-schema.vendor="Luis Alejandro Martínez Faneyth" \ - org.label-schema.version=${VERSION} \ - org.label-schema.schema-version="1.0.0-rc.1" \ - org.opencontainers.image.created=${BUILD_DATE} \ - org.opencontainers.image.title="python3.12" \ - org.opencontainers.image.description="A Python 3.12 image based on Debian bullseye" \ - org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ - org.opencontainers.image.revision=${VCS_REF} \ - org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ - org.opencontainers.image.vendor="Luis Alejandro Martínez Faneyth" \ - org.opencontainers.image.version=${VERSION} \ - org.opencontainers.image.licenses="GPL-3.0" \ - maintainer="Luis Alejandro Martínez Faneyth " - -ENV PYTHON_VER_NUM="3.12" PYTHON_DEBIAN_SUITE="bullseye" \ - PYTHONIOENCODING="UTF-8" PYTHONPATH="/usr/lib/python3.12/dist-packages:/usr/lib/python3.12/site-packages" - -COPY build-image.sh library.sh /usr/share/dockershelf/python/ -RUN bash /usr/share/dockershelf/python/build-image.sh - -CMD ["python"] \ No newline at end of file diff --git a/python/3.12-sid/Dockerfile b/python/3.12-sid/Dockerfile deleted file mode 100644 index 1100357f..00000000 --- a/python/3.12-sid/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM dockershelf/debian:sid - -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION - -LABEL org.label-schema.build-date=${BUILD_DATE} \ - org.label-schema.name="python3.12" \ - org.label-schema.description="A Python 3.12 image based on Debian sid" \ - org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ - org.label-schema.vcs-ref=${VCS_REF} \ - org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ - org.label-schema.vendor="Luis Alejandro Martínez Faneyth" \ - org.label-schema.version=${VERSION} \ - org.label-schema.schema-version="1.0.0-rc.1" \ - org.opencontainers.image.created=${BUILD_DATE} \ - org.opencontainers.image.title="python3.12" \ - org.opencontainers.image.description="A Python 3.12 image based on Debian sid" \ - org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ - org.opencontainers.image.revision=${VCS_REF} \ - org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ - org.opencontainers.image.vendor="Luis Alejandro Martínez Faneyth" \ - org.opencontainers.image.version=${VERSION} \ - org.opencontainers.image.licenses="GPL-3.0" \ - maintainer="Luis Alejandro Martínez Faneyth " - -ENV PYTHON_VER_NUM="3.12" PYTHON_DEBIAN_SUITE="sid" \ - PYTHONIOENCODING="UTF-8" PYTHONPATH="/usr/lib/python3.12/dist-packages:/usr/lib/python3.12/site-packages" - -COPY build-image.sh library.sh /usr/share/dockershelf/python/ -RUN bash /usr/share/dockershelf/python/build-image.sh - -CMD ["python"] \ No newline at end of file diff --git a/python/3.7-bullseye/Dockerfile b/python/3.7-bookworm/Dockerfile similarity index 91% rename from python/3.7-bullseye/Dockerfile rename to python/3.7-bookworm/Dockerfile index 4e2dcd8e..0df7ad86 100644 --- a/python/3.7-bullseye/Dockerfile +++ b/python/3.7-bookworm/Dockerfile @@ -1,4 +1,4 @@ -FROM dockershelf/debian:bullseye +FROM dockershelf/debian:bookworm ARG BUILD_DATE ARG VCS_REF @@ -6,7 +6,7 @@ ARG VERSION LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.name="python3.7" \ - org.label-schema.description="A Python 3.7 image based on Debian bullseye" \ + org.label-schema.description="A Python 3.7 image based on Debian bookworm" \ org.label-schema.url="https://github.com/Dockershelf/dockershelf" \ org.label-schema.vcs-ref=${VCS_REF} \ org.label-schema.vcs-url="https://github.com/Dockershelf/dockershelf" \ @@ -15,7 +15,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.label-schema.schema-version="1.0.0-rc.1" \ org.opencontainers.image.created=${BUILD_DATE} \ org.opencontainers.image.title="python3.7" \ - org.opencontainers.image.description="A Python 3.7 image based on Debian bullseye" \ + org.opencontainers.image.description="A Python 3.7 image based on Debian bookworm" \ org.opencontainers.image.url="https://github.com/Dockershelf/dockershelf" \ org.opencontainers.image.revision=${VCS_REF} \ org.opencontainers.image.source="https://github.com/Dockershelf/dockershelf" \ @@ -24,7 +24,7 @@ LABEL org.label-schema.build-date=${BUILD_DATE} \ org.opencontainers.image.licenses="GPL-3.0" \ maintainer="Luis Alejandro Martínez Faneyth " -ENV PYTHON_VER_NUM="3.7" PYTHON_DEBIAN_SUITE="bullseye" \ +ENV PYTHON_VER_NUM="3.7" PYTHON_DEBIAN_SUITE="bookworm" \ PYTHONIOENCODING="UTF-8" PYTHONPATH="/usr/lib/python3.7/dist-packages:/usr/lib/python3.7/site-packages" COPY build-image.sh library.sh /usr/share/dockershelf/python/ diff --git a/python/README.md b/python/README.md index 98315cd8..6d372f73 100644 --- a/python/README.md +++ b/python/README.md @@ -8,14 +8,12 @@ |Image |Release |Dockerfile |Pulls |Size | |-------|---------|------------|--------|------| -|[`dockershelf/python:3.7-bullseye`](https://hub.docker.com/r/dockershelf/python)|`3.7-bullseye`|[![](https://img.shields.io/badge/-python%2F3.7--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.7-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.7-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| +|[`dockershelf/python:3.7-bookworm`](https://hub.docker.com/r/dockershelf/python)|`3.7-bookworm`|[![](https://img.shields.io/badge/-python%2F3.7--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.7-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.7-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| |[`dockershelf/python:3.7-sid`](https://hub.docker.com/r/dockershelf/python)|`3.7-sid`|[![](https://img.shields.io/badge/-python%2F3.7--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.7-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.7-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| -|[`dockershelf/python:3.10-bullseye`](https://hub.docker.com/r/dockershelf/python)|`3.10-bullseye`|[![](https://img.shields.io/badge/-python%2F3.10--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.10-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.10-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| +|[`dockershelf/python:3.10-bookworm`](https://hub.docker.com/r/dockershelf/python)|`3.10-bookworm`|[![](https://img.shields.io/badge/-python%2F3.10--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.10-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.10-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| |[`dockershelf/python:3.10-sid`](https://hub.docker.com/r/dockershelf/python)|`3.10-sid`|[![](https://img.shields.io/badge/-python%2F3.10--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.10-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.10-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| -|[`dockershelf/python:3.11-bullseye`](https://hub.docker.com/r/dockershelf/python)|`3.11-bullseye`|[![](https://img.shields.io/badge/-python%2F3.11--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.11-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.11-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| +|[`dockershelf/python:3.11-bookworm`](https://hub.docker.com/r/dockershelf/python)|`3.11-bookworm`|[![](https://img.shields.io/badge/-python%2F3.11--bookworm%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.11-bookworm/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.11-bookworm.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| |[`dockershelf/python:3.11-sid`](https://hub.docker.com/r/dockershelf/python)|`3.11-sid`|[![](https://img.shields.io/badge/-python%2F3.11--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.11-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.11-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| -|[`dockershelf/python:3.12-bullseye`](https://hub.docker.com/r/dockershelf/python)|`3.12-bullseye`|[![](https://img.shields.io/badge/-python%2F3.12--bullseye%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.12-bullseye/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.12-bullseye.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| -|[`dockershelf/python:3.12-sid`](https://hub.docker.com/r/dockershelf/python)|`3.12-sid`|[![](https://img.shields.io/badge/-python%2F3.12--sid%2FDockerfile-blue.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900&logo=docker)](https://github.com/Dockershelf/dockershelf/blob/master/python/3.12-sid/Dockerfile)|[![](https://img.shields.io/docker/pulls/dockershelf/python?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)|[![](https://img.shields.io/docker/image-size/dockershelf/python/3.12-sid.svg?colorA=22313f&colorB=4a637b&cacheSeconds=900)](https://hub.docker.com/r/dockershelf/python)| ![](https://raw.githubusercontent.com/Dockershelf/dockershelf/develop/images/table.svg) diff --git a/python/test-image.rb b/python/test-image.rb index d20e60e8..9ed963da 100644 --- a/python/test-image.rb +++ b/python/test-image.rb @@ -19,6 +19,9 @@ describe "%s %s container" % [ENV["DOCKER_IMAGE_TYPE"], ENV["DOCKER_IMAGE_TAG"]] do before(:all) do + Docker.options[:read_timeout] = 1200 + Docker.options[:write_timeout] = 1200 + @image = Docker::Image.get(ENV["DOCKER_IMAGE_NAME"]) @container = Docker::Container.create('Image' => @image.id, 'Tty' => true, 'Cmd' => 'bash') @container.start diff --git a/requirements-dev.txt b/requirements-dev.txt index 2888c20a..376c9678 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -4,10 +4,10 @@ coveralls==3.3.1 flake8==6.0.0 gitchangelog==3.0.4 mako==1.2.4 -pip==22.3.1 -pydocstyle==6.2.0 -setuptools==65.6.3 -tox==4.1.3 -virtualenv==20.17.1 -wheel==0.38.4 -autopep8==2.0.1 +pip==23.2.1 +pydocstyle==6.3.0 +setuptools==68.0.0 +tox==4.6.4 +virtualenv==20.24.2 +wheel==0.41.0 +autopep8==2.0.2 diff --git a/requirements.txt b/requirements.txt index e7998ed4..dacce7ce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -packaging==22.0 -lxml==4.9.2 +packaging==23.1 +lxml==4.9.3 cssselect==1.2.0 \ No newline at end of file diff --git a/scripts/utils.py b/scripts/utils.py index b5530f58..6a73f5bf 100644 --- a/scripts/utils.py +++ b/scripts/utils.py @@ -31,8 +31,7 @@ debian_release_url_holder = 'http://deb.debian.org/debian/dists/{0}/Release' debian_suites = ['oldstable', 'stable', 'testing', 'unstable'] -node_versions_list_file = ('https://raw.githubusercontent.com/nodesource/' - 'distributions/master/deb/src/build.sh') +node_versions_list_file = ('https://raw.githubusercontent.com/nodesource/distributions/master/deb/src/build.sh') node_version_lower_limit = 12 node_version_upper_limit = 18 node_versions_disabled = ['13', '15', '17'] @@ -41,7 +40,6 @@ '3.7', '3.10', '3.11', - '3.12', ] diff --git a/test-image.sh b/test-image.sh index 9d3312ce..ae3d5ca4 100644 --- a/test-image.sh +++ b/test-image.sh @@ -20,27 +20,46 @@ set -euxo pipefail # Some initial configuration -BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -DOCKER_IMAGE_NAME="${1}" -DOCKER_IMAGE_EXTRA_TAGS="${2}" - +BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Load helper functions source "${BASEDIR}/library.sh" +DOCKER_IMAGE_NAME="${1}" +BRANCH="${2}" + +if [ "${BRANCH}" == "develop" ]; then + DOCKER_IMAGE_NAME_SUFFIX="-dev" +fi + # Exit if we didn't get an image to test if [ -z "${DOCKER_IMAGE_NAME}" ]; then msgerror "No Docker image name was given. Aborting." exit 1 fi -# Some initial configuration DOCKER_IMAGE_TAG="${DOCKER_IMAGE_NAME##*:}" DOCKER_IMAGE_TARGET="${DOCKER_IMAGE_NAME##dockershelf/}" DOCKER_IMAGE_TYPE="${DOCKER_IMAGE_TARGET%%:*}" +DOCKER_TEST_IMAGE_NAME="${DOCKER_IMAGE_NAME}-test${DOCKER_IMAGE_NAME_SUFFIX}" + +# Execute rspec for our test suite (amd64) +DOCKER_IMAGE_TAG="${DOCKER_IMAGE_TAG}" \ + DOCKER_IMAGE_NAME="${DOCKER_TEST_IMAGE_NAME}-amd64" \ + DOCKER_IMAGE_TYPE="${DOCKER_IMAGE_TYPE}" \ + DOCKER_IMAGE_ARCH="amd64" \ + rspec \ + --color \ + --backtrace \ + --format documentation \ + "${BASEDIR}/${DOCKER_IMAGE_TYPE}/test-image.rb" -# Execute rspec for our test suite +# Execute rspec for our test suite (arm64) DOCKER_IMAGE_TAG="${DOCKER_IMAGE_TAG}" \ -DOCKER_IMAGE_NAME="${DOCKER_IMAGE_NAME}" \ -DOCKER_IMAGE_TYPE="${DOCKER_IMAGE_TYPE}" \ -DOCKER_IMAGE_EXTRA_TAGS="${DOCKER_IMAGE_EXTRA_TAGS}" \ - rspec -c -f d "${BASEDIR}/${DOCKER_IMAGE_TYPE}/test-image.rb" \ No newline at end of file + DOCKER_IMAGE_NAME="${DOCKER_TEST_IMAGE_NAME}-arm64" \ + DOCKER_IMAGE_TYPE="${DOCKER_IMAGE_TYPE}" \ + DOCKER_IMAGE_ARCH="arm64" \ + rspec \ + --color \ + --backtrace \ + --format documentation \ + "${BASEDIR}/${DOCKER_IMAGE_TYPE}/test-image.rb"