114 lines
3.9 KiB
Docker
114 lines
3.9 KiB
Docker
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
|
|
|
|
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"]
|
|
|
|
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_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/
|
|
COPY --chown=$APP_USER_UID:$APP_USER_GID backend/poetry.lock backend/pyproject.toml backend/manage.py backend/README.md /srv/app/
|
|
COPY --chown=$APP_USER_UID:$APP_USER_GID packages/common/ /srv/packages/common/
|
|
COPY --chown=$APP_USER_UID:$APP_USER_GID packages/soa/ /srv/packages/soa/
|
|
|
|
RUN poetry install --only main,deployment && \
|
|
minify -i --css-precision 0 --js-precision 0 --js-version 2022 hotpocket_backend/apps/ui/static/ui/css/hotpocket-backend*.css hotpocket_backend/apps/ui/static/ui/js/hotpocket*.js && \
|
|
./manage.py collectstatic --settings hotpocket_backend.settings.deployment.build --noinput && \
|
|
find hotpocket_backend/static/ -name "*.map*" -delete && \
|
|
rm -f hotpocket_backend/settings/deployment/build.py && \
|
|
rm -rf node_modules/
|
|
|
|
FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:base-20250819-01 AS deployment-base
|
|
|
|
ARG APP_USER_UID
|
|
ARG APP_USER_GID
|
|
ARG IMAGE_ID
|
|
|
|
ENV HOTPOCKET_BACKEND_IMAGE_ID=${IMAGE_ID}
|
|
ENV PYTHONPATH="/srv/local"
|
|
|
|
COPY --from=deployment-build /srv/app /srv/app
|
|
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
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y libpq5 dumb-init && \
|
|
apt-get clean autoclean && \
|
|
apt-get autoremove --yes && \
|
|
rm -rf /var/lib/apt /var/lib/dpkg && \
|
|
rm -rf /home/app/.cache
|
|
|
|
USER app
|
|
|
|
ENTRYPOINT ["/srv/bin/entrypoint-deployment.sh"]
|
|
CMD ["/srv/venv/bin/gunicorn", "-c", "/srv/lib/gunicorn.conf.py", "hotpocket_backend.wsgi:application"]
|
|
|
|
FROM deployment-base AS deployment
|
|
|
|
ARG APP_USER_UID
|
|
ARG APP_USER_GID
|
|
ARG IMAGE_ID
|
|
|
|
ENV DJANGO_SETTINGS_MODULE=hotpocket_backend.settings.deployment.webapp
|
|
ENV HOTPOCKET_BACKEND_ENV=deployment
|
|
ENV HOTPOCKET_BACKEND_APP=webapp
|
|
|
|
VOLUME ["/srv/run", "/srv/uploads"]
|
|
|
|
FROM deployment-base AS aio
|
|
|
|
ARG APP_USER_UID
|
|
ARG APP_USER_GID
|
|
ARG IMAGE_ID
|
|
|
|
ENV DJANGO_SETTINGS_MODULE=hotpocket_backend.settings.aio
|
|
ENV HOTPOCKET_BACKEND_ENV=aio
|
|
ENV HOTPOCKET_BACKEND_APP=webapp
|
|
ENV HOTPOCKET_BACKEND_DEBUG=false
|
|
ENV HOTPOCKET_BACKEND_DATABASE_ENGINE=django.db.backends.sqlite3
|
|
ENV HOTPOCKET_BACKEND_DATABASE_NAME=/srv/run/hotpocket-backend-aio.sqlite
|
|
ENV HOTPOCKET_BACKEND_DATABASE_USER=
|
|
ENV HOTPOCKET_BACKEND_DATABASE_PASSWORD=
|
|
ENV HOTPOCKET_BACKEND_DATABASE_HOST=
|
|
ENV HOTPOCKET_BACKEND_DATABASE_PORT=
|
|
ENV HOTPOCKET_BACKEND_CELERY_IGNORE_RESULT=true
|
|
ENV HOTPOCKET_BACKEND_CELERY_ALWAYS_EAGER=true
|
|
ENV HOTPOCKET_BACKEND_GUNICORN_WORKERS=2
|
|
ENV HOTPOCKET_BACKEND_RUN_MIGRATIONS=true
|
|
ENV HOTPOCKET_BACKEND_UPLOADS_PATH=/srv/run/uploads
|
|
|
|
VOLUME ["/srv/run"]
|
|
|
|
FROM development AS ci
|
|
|
|
COPY --chown=$APP_USER_UID:$APP_USER_GID backend/ /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 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
|