From b4d537595461ac4cb390fa09881d6392c4922ef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomek=20W=C3=B3jcik?= Date: Tue, 7 Oct 2025 04:37:01 +0000 Subject: [PATCH] =?UTF-8?q?BTHLABS-0000:=20Docker=20and=20CI=20tweaks=20Co?= =?UTF-8?q?-authored-by:=20Tomek=20W=C3=B3jcik=20=20C?= =?UTF-8?q?o-committed-by:=20Tomek=20W=C3=B3jcik=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci.yaml | 14 ++++++++++++ docker-bake.json | 23 ++++++++++++++++++++ docker-compose-ci.yaml | 1 + docker-compose.yaml | 1 + services/.dockerignore | 5 ++++- services/apple/Dockerfile | 19 ++++++++++++++++ services/apple/docker-compose-ci.yaml | 23 ++++++++++++++++++++ services/apple/docker-compose.yaml | 29 +++++++++++++++++++++++++ services/apple/ops/bin/.placeholder | 0 services/backend/Dockerfile | 9 +------- services/extension/Dockerfile | 9 +------- services/extension/ops/bin/.placeholder | 0 services/packages/Dockerfile | 9 +------- services/packages/ops/bin/.placeholder | 0 14 files changed, 117 insertions(+), 25 deletions(-) create mode 100644 services/apple/Dockerfile create mode 100644 services/apple/docker-compose-ci.yaml create mode 100644 services/apple/docker-compose.yaml create mode 100644 services/apple/ops/bin/.placeholder create mode 100644 services/extension/ops/bin/.placeholder create mode 100644 services/packages/ops/bin/.placeholder diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 0287407..71be5de 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -70,6 +70,15 @@ jobs: push: false load: true tags: "docker-hosted.nexus.bthlabs.pl/hotpocket/extension:ci-local" + - name: "Build `apple-ci` image" + uses: docker/build-push-action@v6 + with: + file: "services/apple/Dockerfile" + context: "services/" + target: "ci" + push: false + load: true + tags: "docker-hosted.nexus.bthlabs.pl/hotpocket/apple:ci-local" - name: "Run `backend` checks" run: | set -x @@ -84,6 +93,11 @@ jobs: run: | set -x docker compose -f docker-compose.yaml -f docker-compose-ci.yaml run --rm extension-ci inv ci + - name: "Run `apple` checks" + if: always() + run: | + set -x + docker compose -f docker-compose.yaml -f docker-compose-ci.yaml run --rm apple-ci inv ci - name: "Clean up" if: always() run: | diff --git a/docker-bake.json b/docker-bake.json index 51a16d5..3a6c117 100644 --- a/docker-bake.json +++ b/docker-bake.json @@ -2,6 +2,7 @@ "group": { "default": { "targets": [ + "apple-management", "backend-management", "caddy", "extension-management", @@ -13,6 +14,28 @@ } }, "target": { + "apple-management": { + "context": "services/", + "dockerfile": "apple/Dockerfile", + "tags": [ + "docker-hosted.nexus.bthlabs.pl/hotpocket/apple:local" + ], + "target": "development", + "output": [ + "type=docker,load=true,push=false" + ] + }, + "apple-ci": { + "context": "services/", + "dockerfile": "apple/Dockerfile", + "tags": [ + "docker-hosted.nexus.bthlabs.pl/hotpocket/apple:ci-local" + ], + "target": "ci", + "output": [ + "type=docker,load=true,push=false" + ] + }, "backend-management": { "context": "services/", "dockerfile": "backend/Dockerfile", diff --git a/docker-compose-ci.yaml b/docker-compose-ci.yaml index ea1dc20..9d9c19d 100644 --- a/docker-compose-ci.yaml +++ b/docker-compose-ci.yaml @@ -14,3 +14,4 @@ include: - path: "./services/backend/docker-compose-ci.yaml" - path: "./services/packages/docker-compose-ci.yaml" - path: "./services/extension/docker-compose-ci.yaml" + - path: "./services/apple/docker-compose-ci.yaml" diff --git a/docker-compose.yaml b/docker-compose.yaml index f4e24c7..303061f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,6 +6,7 @@ include: - path: "./services/backend/docker-compose.yaml" - path: "./services/packages/docker-compose.yaml" - path: "./services/extension/docker-compose.yaml" + - path: "./services/apple/docker-compose.yaml" volumes: {} diff --git a/services/.dockerignore b/services/.dockerignore index 68b7604..cc99fb0 100644 --- a/services/.dockerignore +++ b/services/.dockerignore @@ -1,5 +1,8 @@ +.mypy_cache/ +.pytest_cache/ _tmp/ -apple/ +apple/build/ +apple/DerivedData/ backend/node_modules/ backend/ops/metal/ backend/hotpocket_backend/playground.py diff --git a/services/apple/Dockerfile b/services/apple/Dockerfile new file mode 100644 index 0000000..46c14a6 --- /dev/null +++ b/services/apple/Dockerfile @@ -0,0 +1,19 @@ +ARG APP_USER_UID=1000 +ARG APP_USER_GID=1000 +ARG IMAGE_ID=development.00000000 + +FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-node-20250819-01 AS development + +ARG APP_USER_UID +ARG APP_USER_GID +ARG IMAGE_ID + +COPY --chown=$APP_USER_UID:$APP_USER_GID apple/ops/bin/*.sh /srv/bin/ + +VOLUME ["/srv/node_modules", "/srv/venv"] + +FROM development AS ci + +COPY --chown=$APP_USER_UID:$APP_USER_GID apple/ /srv/app/ +COPY --chown=$APP_USER_UID:$APP_USER_GID packages/ /srv/packages/ +COPY --chown=$APP_USER_UID:$APP_USER_GID tls/ /srv/tls/ diff --git a/services/apple/docker-compose-ci.yaml b/services/apple/docker-compose-ci.yaml new file mode 100644 index 0000000..22c91a7 --- /dev/null +++ b/services/apple/docker-compose-ci.yaml @@ -0,0 +1,23 @@ +services: + apple-ci: + build: + context: ".." + dockerfile: "apple/Dockerfile" + target: "development" + image: "docker-hosted.nexus.bthlabs.pl/hotpocket/apple:ci-local" + command: "echo 'NOOP'" + environment: + PYTHONBREAKPOINT: "ipdb.set_trace" + HOTPOCKET_PACKAGES_ENV: "${HOTPOCKET_EXTENSION_ENV:-docker}" + # REQUESTS_CA_BUNDLE: "/srv/tls/requests_ca_bundle.pem" + RUN_POETRY_INSTALL: "true" + RUN_YARN_INSTALL: "false" + SETUP_BACKEND: "true" + SETUP_FRONTEND: "false" + volumes: + - "apple_venv:/srv/venv" + - "apple_node_modules:/srv/node_modules" + - "../tls:/srv/tls" + restart: "no" + stdin_open: true + tty: true diff --git a/services/apple/docker-compose.yaml b/services/apple/docker-compose.yaml new file mode 100644 index 0000000..4d8f4aa --- /dev/null +++ b/services/apple/docker-compose.yaml @@ -0,0 +1,29 @@ +services: + apple-management: + build: + context: ".." + dockerfile: "apple/Dockerfile" + target: "development" + image: "docker-hosted.nexus.bthlabs.pl/hotpocket/apple:local" + command: "echo 'NOOP'" + environment: &apple-env + PYTHONBREAKPOINT: "ipdb.set_trace" + HOTPOCKET_EXTENSION_ENV: "${HOTPOCKET_EXTENSION_ENV:-docker}" + REQUESTS_CA_BUNDLE: "/srv/tls/requests_ca_bundle.pem" + RUN_POETRY_INSTALL: "true" + RUN_YARN_INSTALL: "false" + SETUP_BACKEND: "true" + SETUP_FRONTEND: "false" + volumes: + - "apple_venv:/srv/venv" + - "apple_node_modules:/srv/node_modules" + - ".:/srv/app" + - "../packages:/srv/packages" + - "../tls:/srv/tls" + restart: "no" + stdin_open: true + tty: true + +volumes: + apple_venv: + apple_node_modules: diff --git a/services/apple/ops/bin/.placeholder b/services/apple/ops/bin/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/services/backend/Dockerfile b/services/backend/Dockerfile index e342c66..9d94739 100644 --- a/services/backend/Dockerfile +++ b/services/backend/Dockerfile @@ -8,12 +8,7 @@ ARG APP_USER_UID ARG APP_USER_GID ARG IMAGE_ID -USER root - COPY --chown=$APP_USER_UID:$APP_USER_GID backend/ops/bin/*.sh /srv/bin/ -RUN chown -R ${APP_USER_UID}:${APP_USER_GID} /srv - -USER app VOLUME ["/srv/node_modules", "/srv/venv"] @@ -50,7 +45,6 @@ COPY --from=deployment-build /srv/packages /srv/packages COPY --from=deployment-build /srv/venv /srv/venv COPY --chown=$APP_USER_UID:$APP_USER_GID backend/ops/bin/*.sh /srv/bin/ COPY --chown=$APP_USER_UID:$APP_USER_GID backend/ops/deployment/gunicorn.conf.py backend/ops/deployment/gunicorn.logging.conf /srv/lib/ -RUN chown -R $APP_USER_UID:$APP_USER_GID /srv USER root @@ -109,5 +103,4 @@ COPY --chown=$APP_USER_UID:$APP_USER_GID packages/ /srv/packages/ COPY --chown=$APP_USER_UID:$APP_USER_GID tls/ /srv/tls/ RUN ln -s /srv/app/ops/docker/settings /srv/app/hotpocket_backend/settings/docker && \ - ln -s /srv/app/ops/docker/secrets /srv/app/hotpocket_backend/secrets/docker && \ - chown -R $APP_USER_UID:$APP_USER_GID /srv + ln -s /srv/app/ops/docker/secrets /srv/app/hotpocket_backend/secrets/docker diff --git a/services/extension/Dockerfile b/services/extension/Dockerfile index 39585a7..26f349f 100644 --- a/services/extension/Dockerfile +++ b/services/extension/Dockerfile @@ -8,12 +8,7 @@ ARG APP_USER_UID ARG APP_USER_GID ARG IMAGE_ID -USER root - -# COPY --chown=$APP_USER_UID:$APP_USER_GID extension/ops/bin/*.sh /srv/bin/ -RUN chown -R ${APP_USER_UID}:${APP_USER_GID} /srv - -USER app +COPY --chown=$APP_USER_UID:$APP_USER_GID extension/ops/bin/*.sh /srv/bin/ VOLUME ["/srv/node_modules", "/srv/venv"] @@ -22,5 +17,3 @@ FROM development AS ci COPY --chown=$APP_USER_UID:$APP_USER_GID extension/ /srv/app/ COPY --chown=$APP_USER_UID:$APP_USER_GID packages/ /srv/packages/ COPY --chown=$APP_USER_UID:$APP_USER_GID tls/ /srv/tls/ - -RUN chown -R $APP_USER_UID:$APP_USER_GID /srv diff --git a/services/extension/ops/bin/.placeholder b/services/extension/ops/bin/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/services/packages/Dockerfile b/services/packages/Dockerfile index 27f0aa8..4e477c9 100644 --- a/services/packages/Dockerfile +++ b/services/packages/Dockerfile @@ -8,12 +8,7 @@ ARG APP_USER_UID ARG APP_USER_GID ARG IMAGE_ID -USER root - -# COPY --chown=$APP_USER_UID:$APP_USER_GID packages/ops/bin/*.sh /srv/bin/ -RUN chown -R ${APP_USER_UID}:${APP_USER_GID} /srv - -USER app +COPY --chown=$APP_USER_UID:$APP_USER_GID packages/ops/bin/*.sh /srv/bin/ VOLUME ["/srv/node_modules", "/srv/venv"] @@ -21,5 +16,3 @@ FROM development AS ci COPY --chown=$APP_USER_UID:$APP_USER_GID packages/ /srv/app/ COPY --chown=$APP_USER_UID:$APP_USER_GID tls/ /srv/tls/ - -RUN chown -R $APP_USER_UID:$APP_USER_GID /srv diff --git a/services/packages/ops/bin/.placeholder b/services/packages/ops/bin/.placeholder new file mode 100644 index 0000000..e69de29