Use nginxproxymanager/nginx-full image base

which has been updated with bookworm, python 3.8, certbot 2.8.0 and node 20

Moved rootfs scripts as /bin is a symlink in bookworm
This commit is contained in:
Jamie Curnow
2024-01-10 09:32:12 +10:00
parent be39253a6f
commit e69684919c
17 changed files with 665 additions and 431 deletions

View File

@ -3,7 +3,7 @@
# This file assumes that the frontend has been built using ./scripts/frontend-build
FROM jc21/nginx-full:certbot-node
FROM nginxproxymanager/nginx-full:certbot-node
ARG TARGETPLATFORM
ARG BUILD_VERSION
@ -20,7 +20,8 @@ ENV SUPPRESS_NO_CONFIG_WARNING=1 \
NODE_ENV=production \
NPM_BUILD_VERSION="${BUILD_VERSION}" \
NPM_BUILD_COMMIT="${BUILD_COMMIT}" \
NPM_BUILD_DATE="${BUILD_DATE}"
NPM_BUILD_DATE="${BUILD_DATE}" \
NODE_OPTIONS="--openssl-legacy-provider"
RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \
&& apt-get update \
@ -47,9 +48,7 @@ COPY docker/rootfs /
# Remove frontend service not required for prod, dev nginx config as well
RUN rm -rf /etc/s6-overlay/s6-rc.d/user/contents.d/frontend /etc/nginx/conf.d/dev.conf \
&& chmod 644 /etc/logrotate.d/nginx-proxy-manager \
&& pip uninstall --yes setuptools \
&& pip install --no-cache-dir "setuptools==58.0.0"
&& chmod 644 /etc/logrotate.d/nginx-proxy-manager
VOLUME [ "/data", "/etc/letsencrypt" ]
ENTRYPOINT [ "/init" ]

View File

@ -1,4 +1,4 @@
FROM jc21/nginx-full:certbot-node
FROM nginxproxymanager/nginx-full:certbot-node
LABEL maintainer="Jamie Curnow <jc@jc21.com>"
# See: https://github.com/just-containers/s6-overlay/blob/master/README.md
@ -7,7 +7,8 @@ ENV SUPPRESS_NO_CONFIG_WARNING=1 \
S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \
S6_FIX_ATTRS_HIDDEN=1 \
S6_KILL_FINISH_MAXTIME=10000 \
S6_VERBOSITY=2
S6_VERBOSITY=2 \
NODE_OPTIONS="--openssl-legacy-provider"
RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \
&& apt-get update \

View File

@ -22,7 +22,7 @@ services:
depends_on:
- db
healthcheck:
test: ["CMD", "/bin/check-health"]
test: ["CMD", "/usr/bin/check-health"]
interval: 10s
timeout: 3s
@ -43,7 +43,7 @@ services:
- 80
- 443
healthcheck:
test: ["CMD", "/bin/check-health"]
test: ["CMD", "/usr/bin/check-health"]
interval: 10s
timeout: 3s

View File

@ -3,7 +3,7 @@
set -e
. /bin/common.sh
. /usr/bin/common.sh
cd /app || exit 1

View File

@ -6,7 +6,7 @@ set -e
# This service is DEVELOPMENT only.
if [ "$DEVELOPMENT" = 'true' ]; then
. /bin/common.sh
. /usr/bin/common.sh
cd /app/frontend || exit 1
HOME=$NPMHOME
export HOME

View File

@ -3,7 +3,7 @@
set -e
. /bin/common.sh
. /usr/bin/common.sh
log_info 'Starting nginx ...'
exec s6-setuidgid "$PUID:$PGID" nginx

View File

@ -3,7 +3,7 @@
set -e
. /bin/common.sh
. /usr/bin/common.sh
if [ "$(id -u)" != "0" ]; then
log_fatal "This docker container must be run as root, do not specify a user.\nYou can specify PUID and PGID env vars to run processes as that user and group after initialization."

View File

@ -24,4 +24,4 @@ chown -R "$PUID:$PGID" /etc/nginx/nginx.conf
chown -R "$PUID:$PGID" /etc/nginx/conf.d
# Prevents errors when installing python certbot plugins when non-root
chown -R "$PUID:$PGID" /opt/certbot/lib/python3.7/site-packages
chown -R "$PUID:$PGID" /opt/certbot/lib/python*/site-packages