1- FROM ubuntu: noble
1+ FROM ghcr.io/prefix-dev/pixi:0.72.0- noble
22
33# Credits to yjacolin for providing first versions
44LABEL original_developer="yjacolin <yves.jacolin@camptocamp.com>" \
@@ -18,14 +18,15 @@ ENV LC_ALL="en_US.UTF-8" \
1818 LANGUAGE="en_US.UTF-8" \
1919 \
2020 \
21- DEB_PACKAGES="locales gunicorn python3.12-venv postgresql-client python3-gunicorn python3-gevent python3-lxml python3-pyproj " \
22- DEB_BUILD_DEPS="make python3-pip " \
21+ DEB_PACKAGES="ca-certificates locales postgresql-client" \
22+ DEB_BUILD_DEPS="curl adduser " \
2323 ADMIN_NAME=admin \
2424 ADMIN_PWD=admin \
2525 ADMIN_EMAIL=admin.istrator@mydomain.com \
2626 SQLALCHEMY_DATABASE_URI='sqlite:////GeoHealthCheck/DB/data.db' \
2727 SQLALCHEMY_ENGINE_OPTION_PRE_PING=False \
2828 SECRET_KEY='d544ccc37dc3ad214c09b1b7faaa64c60351d5c8bb48b342' \
29+ GHC_HOME=/GeoHealthCheck \
2930 GHC_PROBE_HTTP_TIMEOUT_SECS=30 \
3031 GHC_MINIMAL_RUN_FREQUENCY_MINS=10 \
3132 GHC_RETENTION_DAYS=30 \
@@ -72,30 +73,34 @@ WSGI_WORKER_CLASS='gevent' \
7273# GHC User Plugins, best be overridden via Container environment \
7374GHC_USER_PLUGINS=''
7475
75- # Install operating system dependencies
76- RUN \
77- apt-get update \
78- && apt-get --no-install-recommends install -y ${DEB_PACKAGES} ${DEB_BUILD_DEPS} ${ADD_DEB_PACKAGES} \
79- && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 \
80- && echo "For ${TZ} date=$(date)" && echo "Locale=$(locale)"
81-
8276# Add standard files and Add/override Plugins
8377# Alternative Entrypoints to run GHC jobs
8478# Override default Entrypoint with these on Containers
8579COPY docker/scripts/*.sh docker/config_site.py docker/plugins /
8680
8781# Add Source Code
88- COPY . /GeoHealthCheck
82+ COPY . ${GHC_HOME}
8983
90- # Install
84+ WORKDIR ${GHC_HOME}
85+
86+ # Install operating system dependencies
9187RUN \
92- chmod a+x /*.sh && ./install.sh \
93- # Cleanup TODO: remove unused Locales and TZs \
88+ apt-get update \
89+ && apt-get --no-install-recommends install -y ${DEB_PACKAGES} ${DEB_BUILD_DEPS} ${ADD_DEB_PACKAGES} \
90+ && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 \
91+ && echo "For ${TZ} date=$(date)" && echo "Locale=$(locale)" \
92+ && adduser --disabled-password --shell /bin/bash --home ${GHC_HOME} --gecos "User" ghc \
93+ && chmod +x /*.sh \
94+ && echo "pixi install --locked -e prod" && pixi install --locked -e prod \
95+ && echo "pixi run -e prod setup" && pixi run -e prod setup \
96+ && echo "cp /config_site.py " && cp /config_site.py ${GHC_HOME}/instance/config_site.py \
97+ && echo "copy plugins.." && if [ -d /plugins ]; then cp -ar /plugins/* ${GHC_HOME}/GeoHealthCheck/plugins/; fi && rm -rf /plugins \
9498 && apt-get remove --purge -y ${DEB_BUILD_DEPS} \
9599 && apt-get clean \
96100 && apt autoremove -y \
97101 && rm -rf /var/lib/apt/lists/*
98102
103+ # USER ghc
99104
100105# For SQLite
101106VOLUME ["/GeoHealthCheck/DB/" ]
0 commit comments