From 326cabe6f4f045d3ec33b5b8673275ca13fc9530 Mon Sep 17 00:00:00 2001 From: Ivan Date: Sat, 24 Sep 2022 13:51:13 +0300 Subject: [PATCH 01/15] Update README.md Remove reference to unmaintained docker hub image --- README.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/README.md b/README.md index e6e4e5e..51bccb6 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,7 @@ Ensure that the `DJANGO_PATH` variable points to the root of the Django repo: If you see a docker-compose warning about it not being defined followed by an error ensure that is defined in the shell you are using. -You can now either download the latest image used on the CI servers with the dependencies pre-installed: - -`docker-compose pull sqlite` - -Or build it yourself: +You need now build the image yourself: `docker-compose build sqlite` @@ -57,10 +53,6 @@ The `PYTHON_VERSION` environment variable customizes which version of Python you `PYTHON_VERSION=3.8 docker-compose run --rm sqlite` -You can also pull the pre-built image in the same way: - -`PYTHON_VERSION=3.8 docker-compose pull sqlite` - ## Oracle As usual Oracle is a bit more complex to set up. You need to download the latest `instantclient` **zip file** From 8696faff24e9a77c461246b105557889705f00a6 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 16:52:30 +0300 Subject: [PATCH 02/15] big matrix --- .github/workflows/dockerhub.yaml | 58 ++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/dockerhub.yaml diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml new file mode 100644 index 0000000..270f1bd --- /dev/null +++ b/.github/workflows/dockerhub.yaml @@ -0,0 +1,58 @@ +name: ci + +on: + push: + branches: + - 'main' + +jobs: + docker: + runs-on: ubuntu-latest + strategy: + matrix: + compose-app: [sqlite, sqlite-gis, postgres, postgres-gis, mysql, mysql-gis, mariadb] + python-version: [3.8 ] + include: + - compose-app: postgres + python-version: 3.8 + postgres-version: [12, 13, 14] + - compose-app: postgres-gis + python-version: 3.8 + postgres-version: 12 + postgis-version: 2.5 + - compose-app: postgres-gis + python-version: 3.8 + postgres-version: 13 + postgis-version: 3.0 + - compose-app: postgres-gis + python-version: 3.8 + postgres-version: 14 + postgis-version: 3.1 + - compose-app: mysql + python-version: 3.8 + mysql-version: [5.7, 8.0] + - compose-app: mysql-gis + python-version: 3.8 + mysql-version: [5.7, 8.0] + - compose-app: mariadb + python-version: 3.8 + mariadb-version: [10.4, 10.5, 10.6, 10.7, 10.8] + steps: + - + name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + uses: docker/build-push-action@v3 + with: + push: true + tags: user/app:latest From 5d46de391bb7537aaa93cc8a7a84b1d637fd77e8 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 17:02:14 +0300 Subject: [PATCH 03/15] test run --- .github/workflows/dockerhub.yaml | 35 ++++++-------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index 270f1bd..9eaf02b 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -10,33 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - compose-app: [sqlite, sqlite-gis, postgres, postgres-gis, mysql, mysql-gis, mariadb] - python-version: [3.8 ] - include: - - compose-app: postgres - python-version: 3.8 - postgres-version: [12, 13, 14] - - compose-app: postgres-gis - python-version: 3.8 - postgres-version: 12 - postgis-version: 2.5 - - compose-app: postgres-gis - python-version: 3.8 - postgres-version: 13 - postgis-version: 3.0 - - compose-app: postgres-gis - python-version: 3.8 - postgres-version: 14 - postgis-version: 3.1 - - compose-app: mysql - python-version: 3.8 - mysql-version: [5.7, 8.0] - - compose-app: mysql-gis - python-version: 3.8 - mysql-version: [5.7, 8.0] - - compose-app: mariadb - python-version: 3.8 - mariadb-version: [10.4, 10.5, 10.6, 10.7, 10.8] + python-version: [3.8, 3.10] steps: - name: Set up QEMU @@ -54,5 +28,8 @@ jobs: name: Build and push uses: docker/build-push-action@v3 with: - push: true - tags: user/app:latest + context: . + push: true + build-args: ${{ matrix.python-version }} + tags: ${{ matrix.python-version }} + From 7723d5e02e8f37d79abb40e2f84936443e6b9e1f Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 17:06:38 +0300 Subject: [PATCH 04/15] fix label --- .github/workflows/dockerhub.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index 9eaf02b..a5294bb 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -24,6 +24,12 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ secrets.DOCKERHUB_USERNAME }}/django-docker-box - name: Build and push uses: docker/build-push-action@v3 @@ -31,5 +37,6 @@ jobs: context: . push: true build-args: ${{ matrix.python-version }} + labels: ${{ steps.meta.outputs.labels }} tags: ${{ matrix.python-version }} From 1c508dc425f173d84a7d1fe3e3bf8e3348a406a5 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 17:14:49 +0300 Subject: [PATCH 05/15] manual run added --- .github/workflows/dockerhub.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index a5294bb..9811161 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -4,6 +4,7 @@ on: push: branches: - 'main' + workflow-dispatch: jobs: docker: From 2357b828786c6a4f2355b821f54c1b4681974f4e Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 17:16:10 +0300 Subject: [PATCH 06/15] fix typo --- .github/workflows/dockerhub.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index 9811161..b03e449 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -4,7 +4,7 @@ on: push: branches: - 'main' - workflow-dispatch: + workflow_dispatch: jobs: docker: From ee7c0354a3c0c05e470b515aa0c4c09eb0ed4fda Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 17:26:15 +0300 Subject: [PATCH 07/15] fix yaml --- .github/workflows/dockerhub.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index b03e449..b3fa9dc 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.8, 3.10] + python-version: [ !!str '3.8', !!str '3.10'] steps: - name: Set up QEMU @@ -35,9 +35,8 @@ jobs: name: Build and push uses: docker/build-push-action@v3 with: - context: . - push: true - build-args: ${{ matrix.python-version }} - labels: ${{ steps.meta.outputs.labels }} - tags: ${{ matrix.python-version }} + push: true + build-args: PYTHON_VERSION=${{ matrix.python-version }} + labels: ${{ steps.meta.outputs.labels }} + tags: ${{ matrix.python-version }} From 6043a71d0d2753da1fae7772a491151dbdb58c92 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 17:31:26 +0300 Subject: [PATCH 08/15] fix type casting --- .github/workflows/dockerhub.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index b3fa9dc..36ecac5 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [ !!str '3.8', !!str '3.10'] + python-version: 3.8 steps: - name: Set up QEMU From 755bcb586745c48e58366bf25e03e60f4890b57d Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 17:33:05 +0300 Subject: [PATCH 09/15] fix actins syntax --- .github/workflows/dockerhub.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index 36ecac5..838858d 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: 3.8 + python-version: [3.8] steps: - name: Set up QEMU From adf4f3caee835edf066929b9268b3d8c9d5783d3 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 18:05:09 +0300 Subject: [PATCH 10/15] add django checkout --- .github/workflows/dockerhub.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index 838858d..46f48d5 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -13,6 +13,11 @@ jobs: matrix: python-version: [3.8] steps: + - name: Check out the repo + uses: actions/checkout@v3 + with: + repository: django/django + path: djangodir - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -36,6 +41,7 @@ jobs: uses: docker/build-push-action@v3 with: push: true + context: djangodir build-args: PYTHON_VERSION=${{ matrix.python-version }} labels: ${{ steps.meta.outputs.labels }} tags: ${{ matrix.python-version }} From 871910fe6a939c9694118888253ebd6c2394cf25 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 18:06:45 +0300 Subject: [PATCH 11/15] fix typo --- .github/workflows/dockerhub.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index 46f48d5..bb767f1 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -13,11 +13,12 @@ jobs: matrix: python-version: [3.8] steps: - - name: Check out the repo + - + name: Check out the repo uses: actions/checkout@v3 - with: - repository: django/django - path: djangodir + with: + repository: django/django + path: djangodir - name: Set up QEMU uses: docker/setup-qemu-action@v2 From e4715b625d943884b21dad6aaa65beb4b6e86da9 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 18:12:43 +0300 Subject: [PATCH 12/15] add local additional context --- .github/workflows/dockerhub.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index bb767f1..9a6d2e9 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -43,6 +43,7 @@ jobs: with: push: true context: djangodir + build-context: . build-args: PYTHON_VERSION=${{ matrix.python-version }} labels: ${{ steps.meta.outputs.labels }} tags: ${{ matrix.python-version }} From 8538ba357b0795cf828c1666d51d68afa685070e Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 18:22:33 +0300 Subject: [PATCH 13/15] explicit dockerfile path --- .github/workflows/dockerhub.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index 9a6d2e9..e9d0882 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -14,7 +14,12 @@ jobs: python-version: [3.8] steps: - - name: Check out the repo + name: Check out the docker repo + uses: actions/checkout@v3 + with: + path: dockerdir + - + name: Check out the django repo uses: actions/checkout@v3 with: repository: django/django @@ -43,7 +48,7 @@ jobs: with: push: true context: djangodir - build-context: . + file: dockerdir/Dockerfile build-args: PYTHON_VERSION=${{ matrix.python-version }} labels: ${{ steps.meta.outputs.labels }} tags: ${{ matrix.python-version }} From 037c54b56236788ab528528d760d437edd9196e3 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 18:28:01 +0300 Subject: [PATCH 14/15] fix tag naming --- .github/workflows/dockerhub.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index e9d0882..003d6ce 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -51,5 +51,5 @@ jobs: file: dockerdir/Dockerfile build-args: PYTHON_VERSION=${{ matrix.python-version }} labels: ${{ steps.meta.outputs.labels }} - tags: ${{ matrix.python-version }} + tags: ${{ secrets.DOCKERHUB_USERNAME }}/django-docker-box:${{ matrix.python-version }} From 067fe19b44786e875148879e8340c5a72e497465 Mon Sep 17 00:00:00 2001 From: Ivan Ignatev Date: Sat, 24 Sep 2022 18:49:03 +0300 Subject: [PATCH 15/15] Revert "Update README.md" This reverts commit 326cabe6f4f045d3ec33b5b8673275ca13fc9530. --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 51bccb6..e6e4e5e 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,11 @@ Ensure that the `DJANGO_PATH` variable points to the root of the Django repo: If you see a docker-compose warning about it not being defined followed by an error ensure that is defined in the shell you are using. -You need now build the image yourself: +You can now either download the latest image used on the CI servers with the dependencies pre-installed: + +`docker-compose pull sqlite` + +Or build it yourself: `docker-compose build sqlite` @@ -53,6 +57,10 @@ The `PYTHON_VERSION` environment variable customizes which version of Python you `PYTHON_VERSION=3.8 docker-compose run --rm sqlite` +You can also pull the pre-built image in the same way: + +`PYTHON_VERSION=3.8 docker-compose pull sqlite` + ## Oracle As usual Oracle is a bit more complex to set up. You need to download the latest `instantclient` **zip file**