From 234b6129043b57d38ec018f74460cf3af4c3d03e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Fri, 14 May 2021 18:29:02 +0200 Subject: [PATCH 1/8] chore: remove unnecessary volume --- Resources/docker/app/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Resources/docker/app/Dockerfile b/Resources/docker/app/Dockerfile index 51b553c43..a859a749a 100644 --- a/Resources/docker/app/Dockerfile +++ b/Resources/docker/app/Dockerfile @@ -6,7 +6,6 @@ ENV PYTHONHASHSEED 'random' RUN mkdir /code WORKDIR /code -VOLUME /code ADD requirements.txt /code/ RUN \ From d8b867355e72af6eed11ad4bc313f900da088afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Fri, 14 May 2021 19:48:14 +0200 Subject: [PATCH 2/8] feat: read env when creating containers --- Resources/compose/docker-compose-prod-graphql.yml | 2 +- config/docker-compose.py | 2 +- docker-compose.yml | 14 +++++++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Resources/compose/docker-compose-prod-graphql.yml b/Resources/compose/docker-compose-prod-graphql.yml index fcdf1bca8..d50c8e58e 100644 --- a/Resources/compose/docker-compose-prod-graphql.yml +++ b/Resources/compose/docker-compose-prod-graphql.yml @@ -14,7 +14,7 @@ services: graphql-engine: environment: - HASURA_GRAPHQL_DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/pokeapi" + HASURA_GRAPHQL_DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-pokeapi}" HASURA_GRAPHQL_ADMIN_SECRET: "${HASURA_GRAPHQL_ADMIN_SECRET}" graphiql: diff --git a/config/docker-compose.py b/config/docker-compose.py index f8dffe4cd..185878ce3 100644 --- a/config/docker-compose.py +++ b/config/docker-compose.py @@ -5,7 +5,7 @@ DATABASES = { "default": { "ENGINE": "django.db.backends.postgresql_psycopg2", - "NAME": "pokeapi", + "NAME": os.environ.get("POSTGRES_DB", "pokeapi"), "USER": os.environ.get("POSTGRES_USER", "ash"), "PASSWORD": os.environ.get("POSTGRES_PASSWORD", "pokemon"), "HOST": "db", diff --git a/docker-compose.yml b/docker-compose.yml index 28a2dfff8..f2d5814ab 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,9 +9,9 @@ services: db: image: postgres environment: - POSTGRES_PASSWORD: 'pokemon' - POSTGRES_USER: 'ash' - POSTGRES_DB: 'pokeapi' + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pokemon} + POSTGRES_USER: ${POSTGRES_USER:-ash} + POSTGRES_DB: ${POSTGRES_DB:-pokeapi} volumes: - pg_data:/var/lib/postgresql/data restart: always @@ -20,6 +20,10 @@ services: build: context: . dockerfile: ./Resources/docker/app/Dockerfile + environment: + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pokemon} + POSTGRES_USER: ${POSTGRES_USER:-ash} + POSTGRES_DB: ${POSTGRES_DB:-pokeapi} volumes: - .:/code links: @@ -53,11 +57,11 @@ services: - "db" restart: always environment: - HASURA_GRAPHQL_DATABASE_URL: postgres://ash:pokemon@db:5432/pokeapi + HASURA_GRAPHQL_DATABASE_URL: postgres://${POSTGRES_USER:-ash}:${POSTGRES_PASSWORD:-pokemon}@db:5432/${POSTGRES_DB:-pokeapi} HASURA_GRAPHQL_ENABLE_CONSOLE: "true" HASURA_GRAPHQL_DEV_MODE: "false" HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log - HASURA_GRAPHQL_ADMIN_SECRET: pokemon + HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-pokemon} HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anon HASURA_GRAPHQL_ENABLE_TELEMETRY: "false" # HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets From 54177a5ea978601a86e65560415b99cffd23b77d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Fri, 14 May 2021 19:48:59 +0200 Subject: [PATCH 3/8] perf: better docker ignore --- .dockerignore | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.dockerignore b/.dockerignore index f939117bf..dd4e3be51 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,14 +1,27 @@ .git .gitignore +.gitmodules CONTRIBUTORS.txt LICENSE.rst README.md -*.pyc +**/*.pyc *media/* *static/* *build/* -*.DS_STORE +**/*.DS_STORE db.* venv* node_modules +Resources +graphql +.vscode +.github +.circleci +docker-compose.yml +.dockerignore +/*.md +/*.js +.env +*pycache* +target \ No newline at end of file From ad0e42e7b710d84eeab52cf442d58a2bd2e5b734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Fri, 14 May 2021 19:49:23 +0200 Subject: [PATCH 4/8] chore: run as nobody/expose correct port --- Resources/docker/app/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/docker/app/Dockerfile b/Resources/docker/app/Dockerfile index a859a749a..b2f16de03 100644 --- a/Resources/docker/app/Dockerfile +++ b/Resources/docker/app/Dockerfile @@ -15,5 +15,6 @@ RUN \ apk --purge del .build-deps ADD . /code/ +USER nobody CMD gunicorn config.wsgi:application -c gunicorn.py.ini -EXPOSE 8000 +EXPOSE 80 From c159244fbd19caac9c301fe9ff54527d2745d20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Sat, 15 May 2021 14:49:16 +0200 Subject: [PATCH 5/8] feat: publish docker images --- .github/workflows/docker-image.yml | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 000000000..dcdb2e719 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,50 @@ +name: ci + +on: + push: + branches: + - 'master' + - 'docker-images' + tags: + - '*.*.*' + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v2 + submodules: 'true' + - + name: Docker meta + id: meta + uses: docker/metadata-action@v3 + with: + # list of Docker images to use as base name for tags + images: | + pokeapi/pokeapi + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME_NARAMSIM }} + password: ${{ secrets.DOCKERHUB_TOKEN_NARAMSIM }} + - + name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + - + name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} From 0faa2e52af70687a21d4c86f2d07be22d75875b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Sat, 15 May 2021 14:54:52 +0200 Subject: [PATCH 6/8] fix: use correct syntax for submodules --- .github/workflows/docker-image.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index dcdb2e719..2f4bd20d3 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -15,7 +15,8 @@ jobs: - name: Checkout uses: actions/checkout@v2 - submodules: 'true' + with: + submodules: recursive - name: Docker meta id: meta From 3b99db93eb75dfff421e3da2ddc397cf33a3e863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Sat, 15 May 2021 15:04:15 +0200 Subject: [PATCH 7/8] fix: pass path --- .github/workflows/docker-image.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 2f4bd20d3..9819766ec 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -43,6 +43,8 @@ jobs: id: docker_build uses: docker/build-push-action@v2 with: + context: . + file: ./Resources/docker/app/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From 2b15f01380353fcec698d13f204ddf65b93943c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alessandro=20Pezz=C3=A8?= Date: Sat, 15 May 2021 15:08:47 +0200 Subject: [PATCH 8/8] feat: disable custom branch/enable staging branch --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 9819766ec..a9d9c0040 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -4,7 +4,7 @@ on: push: branches: - 'master' - - 'docker-images' + - 'staging' tags: - '*.*.*'