From 061611c2ba94623b4865b7b25046d6b5877586d7 Mon Sep 17 00:00:00 2001 From: Artur Lissin Date: Fri, 10 Jul 2026 09:15:32 +0000 Subject: [PATCH 1/2] refactor: correct docker production deployment --- .devcontainer/dev.docker-compose.yml | 3 +++ Dockerfile | 6 ++++-- bin/deploy/entry_dev.sh | 1 + bin/deploy/entry_prod.sh | 1 + bin/deploy/prep.sh | 8 -------- configs/docker/dev.Dockerfile | 8 +++++++- docker-compose.yml | 2 ++ package.env | 5 +++++ 8 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.devcontainer/dev.docker-compose.yml b/.devcontainer/dev.docker-compose.yml index bdbb6cc..5eb104c 100644 --- a/.devcontainer/dev.docker-compose.yml +++ b/.devcontainer/dev.docker-compose.yml @@ -22,9 +22,12 @@ services: USER_GID: 1000 WORK_DIR: "/workspace" UV: ${UV_INSTALL_DIR} + PNPM: ${PNPM_BIN} SSH_AUTH_SOCK: /ssh-agent BIN_DEPLOY_PREP: ${BIN_DEPLOY_PREP} BIN_DEPLOY_REQ: ${BIN_DEPLOY_REQ} + BIN_DEPLOY_HEALTH: ${BIN_DEPLOY_HEALTH} + BIN_DEPLOY_ENTRY_DEV: ${BIN_DEPLOY_ENTRY_DEV} volumes: - ${SSH_AUTH_SOCK:-/dev/null}:/ssh-agent:ro - .:/workspace:cached diff --git a/Dockerfile b/Dockerfile index 310f9d0..7bde2fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,6 +31,8 @@ ARG USERNAME=runner ARG USER_UID=1001 ARG USER_GID=${USER_UID} ARG HOME_MAIN="/home/${USERNAME}" +ARG BIN_DEPLOY_ENTRY_PROD +ARG BIN_DEPLOY_HEALTH RUN dnf clean all && dnf install -y bash @@ -48,8 +50,8 @@ COPY ./${BIN_DEPLOY_PREP} /prep.sh COPY ./${BIN_DEPLOY_REQ} /req.sh COPY --from=appbuilder /tmp/app/dist /tmp/build -COPY --from=appbuilder /health.sh /health.sh -COPY --from=appbuilder /entry.sh /entry.sh +COPY ./${BIN_DEPLOY_ENTRY_PROD} /entry.sh +COPY ./${BIN_DEPLOY_HEALTH} /health.sh WORKDIR /tmp/build RUN bash /prep.sh && rm /prep.sh diff --git a/bin/deploy/entry_dev.sh b/bin/deploy/entry_dev.sh index 18e3570..bbce4a4 100755 --- a/bin/deploy/entry_dev.sh +++ b/bin/deploy/entry_dev.sh @@ -5,4 +5,5 @@ # SPDX-License-Identifier: Unlicense set -euo pipefail +echo 'DEV' sleep infinity diff --git a/bin/deploy/entry_prod.sh b/bin/deploy/entry_prod.sh index 18e3570..2d355c6 100755 --- a/bin/deploy/entry_prod.sh +++ b/bin/deploy/entry_prod.sh @@ -5,4 +5,5 @@ # SPDX-License-Identifier: Unlicense set -euo pipefail +echo 'PROD' sleep infinity diff --git a/bin/deploy/prep.sh b/bin/deploy/prep.sh index 1da5823..8146f91 100755 --- a/bin/deploy/prep.sh +++ b/bin/deploy/prep.sh @@ -5,9 +5,6 @@ # SPDX-License-Identifier: Unlicense set -euo pipefail -root_path=$(dirname "$(realpath "$0")") -source "$root_path/../../package.env" - echo "prep setup" dnf clean all && rm -rf /var/cache/dnf update-ca-trust extract @@ -16,9 +13,4 @@ dnf -y install epel-release dnf -y install dnf-plugins-core dnf config-manager --set-enabled crb dnf upgrade --refresh -y -echo -e "copy health" -cp "$root_path/health.sh" / && chmod +x /health.sh -echo -e "copy entrypoint" -cp "$root_path/entry_dev.sh" /entry_dev.sh && chmod +x /entry_dev.sh -cp "$root_path/entry_prod.sh" /entry.sh && chmod +x /entry.sh echo "prep finished" diff --git a/configs/docker/dev.Dockerfile b/configs/docker/dev.Dockerfile index a2aff55..9c39729 100644 --- a/configs/docker/dev.Dockerfile +++ b/configs/docker/dev.Dockerfile @@ -1,12 +1,13 @@ FROM docker.io/almalinux:10 ARG UV +ARG PNPM ARG USERNAME=devu ARG USER_UID=1000 ARG USER_GID=$USER_UID ARG WORK_DIR=/workspace ENV HOME_MAIN="/home/${USERNAME}" -ENV PATH="${HOME_MAIN}/.local/bin:${WORK_DIR}/${UV}:${PATH}" +ENV PATH="${HOME_MAIN}/.local/bin:${WORK_DIR}/${UV}:${WORK_DIR}/${PNPM}:${PATH}" ENV CONTAINER="container" ENV HISTFILE=/dev/null ENV HISTSIZE=0 @@ -14,6 +15,8 @@ ENV HISTFILESIZE=0 ARG BIN_DEPLOY_PREP ARG BIN_DEPLOY_REQ +ARG BIN_DEPLOY_ENTRY_DEV +ARG BIN_DEPLOY_HEALTH RUN groupadd --gid $USER_GID $USERNAME \ && useradd -m -d $HOME_MAIN \ @@ -23,6 +26,9 @@ COPY . /tmp/app WORKDIR /tmp/app +COPY ./${BIN_DEPLOY_ENTRY_DEV} /entry_dev.sh +COPY ./${BIN_DEPLOY_HEALTH} /health.sh + RUN dnf clean all && dnf install -y bash RUN bash "./${BIN_DEPLOY_PREP}" && bash "./${BIN_DEPLOY_REQ}" diff --git a/docker-compose.yml b/docker-compose.yml index 823aca4..180723b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,6 +16,8 @@ services: WORK_DIR: "/workspace" BIN_DEPLOY_PREP: ${BIN_DEPLOY_PREP} BIN_DEPLOY_REQ: ${BIN_DEPLOY_REQ} + BIN_DEPLOY_HEALTH: ${BIN_DEPLOY_HEALTH} + BIN_DEPLOY_ENTRY_PROD: ${BIN_DEPLOY_ENTRY_PROD} secrets: env_file: diff --git a/package.env b/package.env index 01ab4bb..7e14b0b 100644 --- a/package.env +++ b/package.env @@ -11,6 +11,7 @@ UV_LINK_MODE=copy UV_PYTHON_INSTALL_DIR=.uv/python PNPM_HOME=.pnpm +PNPM_BIN=.pnpm/bin UV_VERSION=0.11.26 PNPM_VERSION=11.9.0 @@ -34,4 +35,8 @@ DOCS_ENV=packages/docs/.env BIN_DEPLOY_PREP=bin/deploy/prep.sh BIN_DEPLOY_REQ=bin/deploy/req.sh +BIN_DEPLOY_HEALTH=bin/deploy/health.sh +BIN_DEPLOY_ENTRY_DEV=bin/deploy/entry_dev.sh +BIN_DEPLOY_ENTRY_PROD=bin/deploy/entry_prod.sh + DOC_PORT=9191 From c0be3f937ce62d28dd60bbb545d3701da33cf553 Mon Sep 17 00:00:00 2001 From: Artur Lissin Date: Fri, 10 Jul 2026 09:51:09 +0000 Subject: [PATCH 2/2] bump: release 0.9.4 --- CHANGELOG.md | 6 ++++++ README.md | 2 +- packages/docs/package.json | 2 +- packages/pkg1/pyproject.toml | 2 +- packages/shared_utils/pyproject.toml | 2 +- pyproject.toml | 2 +- uv.lock | 6 +++--- 7 files changed, 14 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6663d5..541ed9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ SPDX-FileCopyrightText: 2026 Artur Lissin SPDX-License-Identifier: CC0-1.0 --> +## v0.9.4 (2026-07-10) + +### Refactor + +- correct docker production deployment + ## v0.9.3 (2026-07-07) ### Fix diff --git a/README.md b/README.md index d2dbede..e0b21ee 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ SPDX-License-Identifier: CC0-1.0 ### A Bare-Bone Python Monorepo Template -[![release: 0.9.3](https://img.shields.io/badge/rel-0.9.3-blue.svg?style=flat-square)](https://github.com/artdotlis/INITpy) +[![release: 0.9.4](https://img.shields.io/badge/rel-0.9.4-blue.svg?style=flat-square)](https://github.com/artdotlis/INITpy) [![The Unlicense](https://img.shields.io/badge/License-Unlicense-brightgreen.svg?style=flat-square)](https://choosealicense.com/licenses/unlicense/) [![Documentation Status](https://img.shields.io/badge/docs-GitHub-blue.svg?style=flat-square)](https://artdotlis.github.io/INITpy/) diff --git a/packages/docs/package.json b/packages/docs/package.json index 5b40f57..5bccb53 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -14,5 +14,5 @@ "scripts": { "build": "pnpm list --depth 0 --parseable --lockfile-only | grep node_modules | xargs -I {} find {} -type f -name '*.min.js' | xargs -I {} cp {} \"$EXTRA_JS\"" }, - "version": "0.9.3" + "version": "0.9.4" } diff --git a/packages/pkg1/pyproject.toml b/packages/pkg1/pyproject.toml index bcfdf2b..8220208 100644 --- a/packages/pkg1/pyproject.toml +++ b/packages/pkg1/pyproject.toml @@ -5,7 +5,7 @@ [project] classifiers = ["Private :: Do Not Upload"] name = "pkg1" -version = "0.9.3" +version = "0.9.4" description = "One of the projects in the monorepo." readme = "README.md" authors = [ diff --git a/packages/shared_utils/pyproject.toml b/packages/shared_utils/pyproject.toml index e420338..a4a391b 100644 --- a/packages/shared_utils/pyproject.toml +++ b/packages/shared_utils/pyproject.toml @@ -5,7 +5,7 @@ [project] classifiers = ["Private :: Do Not Upload"] name = "shared_utils" -version = "0.9.3" +version = "0.9.4" description = "Shared library for packages." readme = "README.md" authors = [ diff --git a/pyproject.toml b/pyproject.toml index 47db583..9cfcd6f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ [project] classifiers = ["Private :: Do Not Upload"] name = "initpy" -version = "0.9.3" +version = "0.9.4" description = """Initial bare-bone monorepo Python project.""" readme = "README.md" authors = [{ name = "Artur Lissin", email = "artdotlis@pm.me" }] diff --git a/uv.lock b/uv.lock index fef2d92..0f1cc83 100644 --- a/uv.lock +++ b/uv.lock @@ -293,7 +293,7 @@ wheels = [ [[package]] name = "initpy" -version = "0.9.3" +version = "0.9.4" source = { virtual = "." } [package.dev-dependencies] @@ -560,7 +560,7 @@ wheels = [ [[package]] name = "pkg1" -version = "0.9.3" +version = "0.9.4" source = { editable = "packages/pkg1" } dependencies = [ { name = "shared-utils" }, @@ -834,7 +834,7 @@ wheels = [ [[package]] name = "shared-utils" -version = "0.9.3" +version = "0.9.4" source = { editable = "packages/shared_utils" } [[package]]