From d80bd48294babfb492fbe53edf3609e85cbf27d4 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 31 May 2024 00:30:46 +0100 Subject: [PATCH] upgrading base image to Alpine 3.20, upgrading php to 8.3 --- Dockerfile | 6 +++--- dockerfiles/pre-setup.sh | 20 ++++++++++---------- dockerfiles/setup.sh | 22 +++++++++++----------- install/netalertx.template.conf | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2300d1f4..8732ddd0 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.19 as builder +FROM alpine:3.20 as builder ARG INSTALL_DIR=/app @@ -19,7 +19,7 @@ RUN pip install requests paho-mqtt scapy cron-converter pytz json2table dhcp-lea && bash -c "find ${INSTALL_DIR} -type f \( -name '*.sh' -o -name '*.py' -o -name 'speedtest-cli' \) -exec chmod 750 {} \;" # second stage -FROM alpine:3.19 as runner +FROM alpine:3.20 as runner ARG INSTALL_DIR=/app @@ -39,7 +39,7 @@ ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 RUN apk update --no-cache \ && apk add --no-cache bash zip lsblk gettext-envsubst sudo mtr tzdata s6-overlay \ && apk add --no-cache curl arp-scan iproute2 iproute2-ss nmap nmap-scripts traceroute net-tools net-snmp-tools bind-tools awake ca-certificates \ - && apk add --no-cache sqlite php82 php82-fpm php82-cgi php82-curl php82-sqlite3 php82-session \ + && apk add --no-cache sqlite php83 php83-fpm php83-cgi php83-curl php83-sqlite3 php83-session \ && apk add --no-cache python3 nginx \ && ln -s /usr/bin/awake /usr/bin/wakeonlan \ && bash -c "install -d -m 750 -o nginx -g www-data ${INSTALL_DIR} ${INSTALL_DIR}" \ diff --git a/dockerfiles/pre-setup.sh b/dockerfiles/pre-setup.sh index 0065c7a1..551c09f9 100755 --- a/dockerfiles/pre-setup.sh +++ b/dockerfiles/pre-setup.sh @@ -5,12 +5,12 @@ export APP_NAME=netalertx # php-fpm setup install -d -o nginx -g www-data /run/php/ -sed -i "/^;pid/c\pid = /run/php/php8.2-fpm.pid" /etc/php82/php-fpm.conf -sed -i "/^listen/c\listen = /run/php/php8.2-fpm.sock" /etc/php82/php-fpm.d/www.conf -sed -i "/^;listen.owner/c\listen.owner = nginx" /etc/php82/php-fpm.d/www.conf -sed -i "/^;listen.group/c\listen.group = www-data" /etc/php82/php-fpm.d/www.conf -sed -i "/^user/c\user = nginx" /etc/php82/php-fpm.d/www.conf -sed -i "/^group/c\group = www-data" /etc/php82/php-fpm.d/www.conf +sed -i "/^;pid/c\pid = /run/php/php8.3-fpm.pid" /etc/php83/php-fpm.conf +sed -i "/^listen/c\listen = /run/php/php8.3-fpm.sock" /etc/php83/php-fpm.d/www.conf +sed -i "/^;listen.owner/c\listen.owner = nginx" /etc/php83/php-fpm.d/www.conf +sed -i "/^;listen.group/c\listen.group = www-data" /etc/php83/php-fpm.d/www.conf +sed -i "/^user/c\user = nginx" /etc/php83/php-fpm.d/www.conf +sed -i "/^group/c\group = www-data" /etc/php83/php-fpm.d/www.conf # s6 overlay setup mkdir -p /etc/s6-overlay/s6-rc.d/{SetupOneshot,php-fpm/dependencies.d,nginx/dependencies.d} @@ -20,17 +20,17 @@ echo "longrun" > /etc/s6-overlay/s6-rc.d/php-fpm/type echo "longrun" > /etc/s6-overlay/s6-rc.d/nginx/type echo "longrun" > /etc/s6-overlay/s6-rc.d/$APP_NAME/type echo -e "${INSTALL_DIR}/dockerfiles/setup.sh" > /etc/s6-overlay/s6-rc.d/SetupOneshot/up -echo -e "#!/bin/execlineb -P\n/usr/sbin/php-fpm82 -F" > /etc/s6-overlay/s6-rc.d/php-fpm/run +echo -e "#!/bin/execlineb -P\n/usr/sbin/php-fpm83 -F" > /etc/s6-overlay/s6-rc.d/php-fpm/run echo -e '#!/bin/execlineb -P\nnginx -g "daemon off;"' > /etc/s6-overlay/s6-rc.d/nginx/run echo -e '#!/bin/execlineb -P with-contenv importas -u PORT PORT - - if { echo + + if { echo " [INSTALL] 🚀 Starting app (:${PORT}) - + " }' > /etc/s6-overlay/s6-rc.d/$APP_NAME/run echo -e "python ${INSTALL_DIR}/server" >> /etc/s6-overlay/s6-rc.d/$APP_NAME/run touch /etc/s6-overlay/s6-rc.d/user/contents.d/{SetupOneshot,php-fpm,nginx} /etc/s6-overlay/s6-rc.d/{php-fpm,nginx}/dependencies.d/SetupOneshot diff --git a/dockerfiles/setup.sh b/dockerfiles/setup.sh index 085e55a5..85f8fbfb 100755 --- a/dockerfiles/setup.sh +++ b/dockerfiles/setup.sh @@ -8,7 +8,7 @@ export INSTALL_DIR=/app # Specify the installation directory here # DO NOT CHANGE ANYTHING BELOW THIS LINE! -CONF_FILE="app.conf" +CONF_FILE="app.conf" NGINX_CONF_FILE=netalertx.conf DB_FILE="app.db" FULL_FILEDB_PATH="${INSTALL_DIR}/db/${DB_FILE}" @@ -28,14 +28,14 @@ fi echo "[INSTALL] Copy starter ${DB_FILE} and ${CONF_FILE} if they don't exist" -# DANGER ZONE: ALWAYS_FRESH_INSTALL +# DANGER ZONE: ALWAYS_FRESH_INSTALL if [ "$ALWAYS_FRESH_INSTALL" = true ]; then echo "[INSTALL] ❗ ALERT /db and /config folders are cleared because the ALWAYS_FRESH_INSTALL is set to: $ALWAYS_FRESH_INSTALL❗" - + # Delete content of "$INSTALL_DIR/config/" rm -rf "$INSTALL_DIR/config/"* rm -rf "$INSTALL_DIR_OLD/config/"* - + # Delete content of "$INSTALL_DIR/db/" rm -rf "$INSTALL_DIR/db/"* rm -rf "$INSTALL_DIR_OLD/db/"* @@ -61,11 +61,11 @@ cp -na "${INSTALL_DIR}/back/${DB_FILE}" "${FULL_FILEDB_PATH}" # if custom variables not set we do not need to do anything if [ -n "${TZ}" ]; then FILECONF="${INSTALL_DIR}/config/${CONF_FILE}" - echo "[INSTALL] Setup timezone" + echo "[INSTALL] Setup timezone" sed -i "\#^TIMEZONE=#c\TIMEZONE='${TZ}'" "${FILECONF}" # set TimeZone in container - cp /usr/share/zoneinfo/$TZ /etc/localtime + cp /usr/share/zoneinfo/$TZ /etc/localtime echo $TZ > /etc/timezone fi @@ -107,9 +107,9 @@ if [ ! -f "${INSTALL_DIR}/front/buildtimestamp.txt" ]; then fi echo -e " - [ENV] PATH is ${PATH} - [ENV] PORT is ${PORT} - [ENV] TZ is ${TZ} - [ENV] LISTEN_ADDR is ${LISTEN_ADDR} - [ENV] ALWAYS_FRESH_INSTALL is ${ALWAYS_FRESH_INSTALL} + [ENV] PATH is ${PATH} + [ENV] PORT is ${PORT} + [ENV] TZ is ${TZ} + [ENV] LISTEN_ADDR is ${LISTEN_ADDR} + [ENV] ALWAYS_FRESH_INSTALL is ${ALWAYS_FRESH_INSTALL} " diff --git a/install/netalertx.template.conf b/install/netalertx.template.conf index 08c858a4..dc6ecfa8 100755 --- a/install/netalertx.template.conf +++ b/install/netalertx.template.conf @@ -8,7 +8,7 @@ server { location ~* \.php$ { # Set Cache-Control header to prevent caching on the first load add_header Cache-Control "no-store"; - fastcgi_pass unix:/run/php/php8.2-fpm.sock; + fastcgi_pass unix:/run/php/php8.3-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name;