BTHLABS-49: WIP

This commit is contained in:
Tomek Wójcik 2025-08-19 08:33:44 +02:00
parent 6b959bb9ea
commit 53fdc8e12e
10 changed files with 27 additions and 28 deletions

View File

@ -1,12 +1,12 @@
ARG APP_USER_UID=1000
ARG APP_USER_GID=1000
ARG IMAGE_TAG=development.00000000
ARG IMAGE_ID=development.00000000
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-node-20250816-01 AS development
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-node-20250819-01 AS development
ARG APP_USER_UID
ARG APP_USER_GID
ARG IMAGE_TAG
ARG IMAGE_ID
USER root
@ -17,11 +17,11 @@ USER app
VOLUME ["/srv/node_modules", "/srv/venv"]
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-python-20250816-01 AS deployment-build
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-python-20250819-01 AS deployment-build
ARG APP_USER_UID
ARG APP_USER_GID
ARG IMAGE_TAG
ARG IMAGE_ID
RUN mkdir /srv/app/hotpocket_backend /srv/packages/common /srv/packages/soa
COPY --chown=$APP_USER_UID:$APP_USER_GID backend/hotpocket_backend/ /srv/app/hotpocket_backend/
@ -36,13 +36,13 @@ RUN poetry install --only main,deployment && \
rm -f hotpocket_backend/settings/deployment/build.py && \
rm -rf node_modules/
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:base-20250816-01 AS deployment-base
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:base-20250819-01 AS deployment-base
ARG APP_USER_UID
ARG APP_USER_GID
ARG IMAGE_TAG
ARG IMAGE_ID
ENV HOTPOCKET_BACKEND_IMAGE_TAG=${IMAGE_TAG}
ENV HOTPOCKET_BACKEND_IMAGE_ID=${IMAGE_ID}
ENV PYTHONPATH="/srv/local"
COPY --from=deployment-build /srv/app /srv/app
@ -50,8 +50,7 @@ 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 mkdir /srv/entrypoint.d /srv/local && \
chown -R $APP_USER_UID:$APP_USER_GID /srv
RUN chown -R $APP_USER_UID:$APP_USER_GID /srv
USER root
@ -71,7 +70,7 @@ FROM deployment-base AS deployment
ARG APP_USER_UID
ARG APP_USER_GID
ARG IMAGE_TAG
ARG IMAGE_ID
VOLUME ["/srv/run", "/srv/uploads"]
@ -79,7 +78,7 @@ FROM deployment-base AS aio
ARG APP_USER_UID
ARG APP_USER_GID
ARG IMAGE_TAG
ARG IMAGE_ID
ENV DJANGO_SETTINGS_MODULE=hotpocket_backend.settings.aio
ENV HOTPOCKET_BACKEND_ENV=aio

View File

@ -24,7 +24,7 @@ class PSettings(typing.Protocol):
SITE_TITLE: str
SITE_SHORT_TITLE: str
IMAGE_TAG: str
IMAGE_ID: str
SAVES_SAVE_ADAPTER: str
SAVES_ASSOCIATION_ADAPTER: str

View File

@ -15,7 +15,7 @@ def site_title(request: HttpRequest) -> dict:
def image_tag(request: HttpRequest) -> dict:
return {
'IMAGE_TAG': settings.IMAGE_TAG,
'IMAGE_ID': settings.IMAGE_ID,
}

View File

@ -14,7 +14,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover,user-scalable=no">
<meta name="generator" content="pl.bthlabs.HotPocket.backend@{{ IMAGE_TAG }}">
<meta name="generator" content="pl.bthlabs.HotPocket.backend@{{ IMAGE_ID }}">
<meta name="theme-color" content="#2b3035"/>
<title>{% block title %}{% translate 'Not Found' %}{% endblock %} | {{ SITE_TITLE }}</title>
<link href="{% static 'ui/css/bootstrap.min.css' %}" rel="stylesheet">

View File

@ -1,7 +1,7 @@
<p class="mb-0 mt-2 text-center text-muted ui-uname">
<span>
<a href="https://hotpocket.app/" target="_blank" rel="noopener noreferer">{{ SITE_TITLE }}</a>
(<code>{{ IMAGE_TAG }}</code>)
(<code>{{ IMAGE_ID }}</code>)
</span>
<br>
<span>Copyright &copy; 2025-present by BTHLabs. All rights reserved.</span>

View File

@ -189,7 +189,7 @@ SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
AUTHENTICATION_BACKENDS = [
]
IMAGE_TAG = os.getenv('HOTPOCKET_BACKEND_IMAGE_TAG', 'development.00000000')
IMAGE_ID = os.getenv('HOTPOCKET_BACKEND_IMAGE_ID', 'development.00000000')
MODEL_AUTH_IS_DISABLED = (
os.getenv('HOTPOCKET_BACKEND_MODEL_AUTH_IS_DISABLED', 'false').lower() == 'true'

View File

@ -13,7 +13,7 @@ cat <<EOF
|_|
production
HotPocket v1.0.0rc1 [${HOTPOCKET_BACKEND_IMAGE_TAG}] (https://htpocket.app/)
HotPocket v1.0.0rc1 [${HOTPOCKET_BACKEND_IMAGE_ID}] (https://htpocket.app/)
Copyright 2025-present by BTHLabs. All rights reserved. (https://bthlabs.pl/)
Licensed under BTHLabs Source Available License Agreement
EOF
@ -21,12 +21,12 @@ EOF
export PYTHONPATH="/srv/app:$PYTHONPATH"
if [ -n "${HOTPOCKET_BACKEND_RUN_MIGRATIONS}" ];then
echo; echo "Running migrations..."
echo; echo "--- Running migrations..."
${VIRTUAL_ENV}/bin/python /srv/app/manage.py migrate
fi
if [[ -n "${HOTPOCKET_BACKEND_INITIAL_ACCOUNT_USERNAME}" && -n "${HOTPOCKET_BACKEND_INITIAL_ACCOUNT_PASSWORD}" ]]; then
echo; echo "Creating initial Account..."
echo; echo "--- Creating initial Account..."
${VIRTUAL_ENV}/bin/python /srv/app/manage.py create_initial_account "${HOTPOCKET_BACKEND_INITIAL_ACCOUNT_USERNAME}" "${HOTPOCKET_BACKEND_INITIAL_ACCOUNT_PASSWORD}"
fi
@ -34,8 +34,8 @@ if [ "${HOTPOCKET_BACKEND_ENV}" = "aio" ];then
mkdir -p "${HOTPOCKET_BACKEND_UPLOADS_PATH:-/srv/run/uploads}"
fi
echo; echo "Running entrypoing.d parts..."
find "/srv/entrypoint.d/" -follow -type f -print | sort -V | while read -r ENTRYPOINT_PART; do
echo; echo "--- Running entrypoint.d parts..."
find "/srv/etc/entrypoint.d/" -follow -type f -print | sort -V | while read -r ENTRYPOINT_PART; do
case "$ENTRYPOINT_PART" in
*.sh)
echo "$0: Executing ${ENTRYPOINT_PART}...";
@ -48,6 +48,6 @@ find "/srv/entrypoint.d/" -follow -type f -print | sort -V | while read -r ENTRY
esac
done
echo; echo "Setup done, booting the app..."; echo
echo; echo "--- Setup done, booting the app..."; echo
exec /usr/bin/dumb-init "$@"

View File

@ -25,7 +25,7 @@ RUN if [ ! $(getent group ${APP_USER_GID}) ];then groupadd -g ${APP_USER_GID} ap
apt-get install --no-install-recommends -y curl iputils-ping less net-tools vim-tiny wget && \
(curl -sSL https://install.python-poetry.org | python -) && \
python3.12 -m venv ${VIRTUAL_ENV} && \
mkdir /srv/app /srv/bin /srv/lib /srv/log /srv/node_modules /srv/opt /srv/packages /srv/run /srv/tmp /srv/uploads
mkdir /srv/app /srv/bin /srv/etc /srv/etc/entrypoint.d/ /srv/lib /srv/local /srv/log /srv/node_modules /srv/opt /srv/packages /srv/run /srv/tmp /srv/uploads
COPY --chown=$APP_USER_UID:$APP_USER_GID base/ops/bin/*.sh /srv/bin/
RUN chown -R ${APP_USER_UID}:${APP_USER_GID} /srv

View File

@ -1,12 +1,12 @@
ARG APP_USER_UID=1000
ARG APP_USER_GID=1000
ARG IMAGE_TAG=development.00000000
ARG IMAGE_ID=development.00000000
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-python-20250816-01 AS development
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-python-20250819-01 AS development
ARG APP_USER_UID
ARG APP_USER_GID
ARG IMAGE_TAG
ARG IMAGE_ID
USER root

View File

@ -166,7 +166,7 @@ def build(ctx,
),
f'-t docker-hosted.nexus.bthlabs.pl/hotpocket/{service}:{docker_build_ctx.tag}', # noqa: E501
f'-f services/{service}/Dockerfile',
f'--build-arg IMAGE_TAG={image_tag}',
f'--build-arg IMAGE_ID={image_tag}',
f'--target {docker_build_ctx.target}',
'services/',
]