From 9af656fdac06d1edb5c862aebed9e6b7d25fa4c7 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Thu, 14 Oct 2021 14:01:52 -0500 Subject: [PATCH 1/2] Use standard nginx.conf from lsio alpine nginx base image. --- .github/workflows/external_trigger.yml | 2 +- Dockerfile | 89 +++++++++++++------------- Dockerfile.aarch64 | 89 +++++++++++++------------- Dockerfile.armhf | 89 +++++++++++++------------- Jenkinsfile | 4 +- README.md | 1 + jenkins-vars.yml | 4 +- package_versions.txt | 60 ++++++++--------- readme-vars.yml | 1 + root/etc/cont-init.d/40-config | 23 ------- root/etc/cont-init.d/70-outdated | 6 ++ 11 files changed, 172 insertions(+), 196 deletions(-) delete mode 100644 root/etc/cont-init.d/40-config create mode 100644 root/etc/cont-init.d/70-outdated diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index f70ff47..0ac4c08 100755 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -18,7 +18,7 @@ jobs: fi echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_NGINX_MASTER\". ****" echo "**** Retrieving external version ****" - EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ && awk '/^P:'"nginx"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then echo "**** Can't retrieve external version, exiting ****" diff --git a/Dockerfile b/Dockerfile index 1557bb5..926b1c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.15 # set version label ARG BUILD_DATE @@ -15,7 +15,7 @@ RUN \ apk add --no-cache --upgrade \ curl && \ if [ -z ${NGINX_VERSION+x} ]; then \ - NGINX_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + NGINX_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ && awk '/^P:nginx$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ fi && \ apk add --no-cache --upgrade \ @@ -41,50 +41,47 @@ RUN \ nginx-mod-stream-geoip==${NGINX_VERSION} \ nginx-mod-stream-geoip2==${NGINX_VERSION} \ nginx-vim==${NGINX_VERSION} \ - php7-bcmath \ - php7-bz2 \ - php7-ctype \ - php7-curl \ - php7-dom \ - php7-exif \ - php7-ftp \ - php7-gd \ - php7-gmp \ - php7-iconv \ - php7-imap \ - php7-intl \ - php7-ldap \ - php7-mcrypt \ - php7-memcached \ - php7-mysqli \ - php7-mysqlnd \ - php7-opcache \ - php7-pdo_mysql \ - php7-pdo_odbc \ - php7-pdo_pgsql \ - php7-pdo_sqlite \ - php7-pear \ - php7-pecl-apcu \ - php7-pecl-mailparse \ - php7-pecl-redis \ - php7-pgsql \ - php7-phar \ - php7-posix \ - php7-soap \ - php7-sockets \ - php7-sodium \ - php7-sqlite3 \ - php7-tokenizer \ - php7-xml \ - php7-xmlreader \ - php7-xmlrpc \ - php7-xsl \ - php7-zip && \ - echo "**** configure nginx ****" && \ - rm -f /etc/nginx/http.d/default.conf && \ - sed -i \ - 's|include /config/nginx/site-confs/\*;|include /config/nginx/site-confs/\*;\n\t#Removed lua. Do not remove this comment|g' \ - /defaults/nginx.conf + php8-bcmath \ + php8-bz2 \ + php8-ctype \ + php8-curl \ + php8-dom \ + php8-exif \ + php8-ftp \ + php8-gd \ + php8-gmp \ + php8-iconv \ + php8-imap \ + php8-intl \ + php8-ldap \ + php8-mysqli \ + php8-mysqlnd \ + php8-opcache \ + php8-pdo_mysql \ + php8-pdo_odbc \ + php8-pdo_pgsql \ + php8-pdo_sqlite \ + php8-pear \ + php8-pecl-apcu \ + php8-pecl-mailparse \ + php8-pecl-mcrypt \ + php8-pecl-memcached \ + php8-pecl-redis \ + php8-pgsql \ + php8-phar \ + php8-posix \ + php8-soap \ + php8-sockets \ + php8-sodium \ + php8-sqlite3 \ + php8-tokenizer \ + php8-xml \ + php8-xmlreader \ + php8-xsl \ + php8-zip && \ + apk add --no-cache \ + --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + php8-pecl-xmlrpc # add local files COPY root/ / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index dd972be..4908d01 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.14 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.15 # set version label ARG BUILD_DATE @@ -15,7 +15,7 @@ RUN \ apk add --no-cache --upgrade \ curl && \ if [ -z ${NGINX_VERSION+x} ]; then \ - NGINX_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + NGINX_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ && awk '/^P:nginx$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ fi && \ apk add --no-cache --upgrade \ @@ -41,50 +41,47 @@ RUN \ nginx-mod-stream-geoip==${NGINX_VERSION} \ nginx-mod-stream-geoip2==${NGINX_VERSION} \ nginx-vim==${NGINX_VERSION} \ - php7-bcmath \ - php7-bz2 \ - php7-ctype \ - php7-curl \ - php7-dom \ - php7-exif \ - php7-ftp \ - php7-gd \ - php7-gmp \ - php7-iconv \ - php7-imap \ - php7-intl \ - php7-ldap \ - php7-mcrypt \ - php7-memcached \ - php7-mysqli \ - php7-mysqlnd \ - php7-opcache \ - php7-pdo_mysql \ - php7-pdo_odbc \ - php7-pdo_pgsql \ - php7-pdo_sqlite \ - php7-pear \ - php7-pecl-apcu \ - php7-pecl-mailparse \ - php7-pecl-redis \ - php7-pgsql \ - php7-phar \ - php7-posix \ - php7-soap \ - php7-sockets \ - php7-sodium \ - php7-sqlite3 \ - php7-tokenizer \ - php7-xml \ - php7-xmlreader \ - php7-xmlrpc \ - php7-xsl \ - php7-zip && \ - echo "**** configure nginx ****" && \ - rm -f /etc/nginx/http.d/default.conf && \ - sed -i \ - 's|include /config/nginx/site-confs/\*;|include /config/nginx/site-confs/\*;\n\t#Removed lua. Do not remove this comment|g' \ - /defaults/nginx.conf + php8-bcmath \ + php8-bz2 \ + php8-ctype \ + php8-curl \ + php8-dom \ + php8-exif \ + php8-ftp \ + php8-gd \ + php8-gmp \ + php8-iconv \ + php8-imap \ + php8-intl \ + php8-ldap \ + php8-mysqli \ + php8-mysqlnd \ + php8-opcache \ + php8-pdo_mysql \ + php8-pdo_odbc \ + php8-pdo_pgsql \ + php8-pdo_sqlite \ + php8-pear \ + php8-pecl-apcu \ + php8-pecl-mailparse \ + php8-pecl-mcrypt \ + php8-pecl-memcached \ + php8-pecl-redis \ + php8-pgsql \ + php8-phar \ + php8-posix \ + php8-soap \ + php8-sockets \ + php8-sodium \ + php8-sqlite3 \ + php8-tokenizer \ + php8-xml \ + php8-xmlreader \ + php8-xsl \ + php8-zip && \ + apk add --no-cache \ + --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + php8-pecl-xmlrpc # add local files COPY root/ / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 0f7bcd2..d321eb5 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.15 # set version label ARG BUILD_DATE @@ -15,7 +15,7 @@ RUN \ apk add --no-cache --upgrade \ curl && \ if [ -z ${NGINX_VERSION+x} ]; then \ - NGINX_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + NGINX_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ && awk '/^P:nginx$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ fi && \ apk add --no-cache --upgrade \ @@ -41,50 +41,47 @@ RUN \ nginx-mod-stream-geoip==${NGINX_VERSION} \ nginx-mod-stream-geoip2==${NGINX_VERSION} \ nginx-vim==${NGINX_VERSION} \ - php7-bcmath \ - php7-bz2 \ - php7-ctype \ - php7-curl \ - php7-dom \ - php7-exif \ - php7-ftp \ - php7-gd \ - php7-gmp \ - php7-iconv \ - php7-imap \ - php7-intl \ - php7-ldap \ - php7-mcrypt \ - php7-memcached \ - php7-mysqli \ - php7-mysqlnd \ - php7-opcache \ - php7-pdo_mysql \ - php7-pdo_odbc \ - php7-pdo_pgsql \ - php7-pdo_sqlite \ - php7-pear \ - php7-pecl-apcu \ - php7-pecl-mailparse \ - php7-pecl-redis \ - php7-pgsql \ - php7-phar \ - php7-posix \ - php7-soap \ - php7-sockets \ - php7-sodium \ - php7-sqlite3 \ - php7-tokenizer \ - php7-xml \ - php7-xmlreader \ - php7-xmlrpc \ - php7-xsl \ - php7-zip && \ - echo "**** configure nginx ****" && \ - rm -f /etc/nginx/http.d/default.conf && \ - sed -i \ - 's|include /config/nginx/site-confs/\*;|include /config/nginx/site-confs/\*;\n\t#Removed lua. Do not remove this comment|g' \ - /defaults/nginx.conf + php8-bcmath \ + php8-bz2 \ + php8-ctype \ + php8-curl \ + php8-dom \ + php8-exif \ + php8-ftp \ + php8-gd \ + php8-gmp \ + php8-iconv \ + php8-imap \ + php8-intl \ + php8-ldap \ + php8-mysqli \ + php8-mysqlnd \ + php8-opcache \ + php8-pdo_mysql \ + php8-pdo_odbc \ + php8-pdo_pgsql \ + php8-pdo_sqlite \ + php8-pear \ + php8-pecl-apcu \ + php8-pecl-mailparse \ + php8-pecl-mcrypt \ + php8-pecl-memcached \ + php8-pecl-redis \ + php8-pgsql \ + php8-phar \ + php8-posix \ + php8-soap \ + php8-sockets \ + php8-sodium \ + php8-sqlite3 \ + php8-tokenizer \ + php8-xml \ + php8-xmlreader \ + php8-xsl \ + php8-zip && \ + apk add --no-cache \ + --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + php8-pecl-xmlrpc # add local files COPY root/ / diff --git a/Jenkinsfile b/Jenkinsfile index 6beba17..bae4561 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -25,8 +25,8 @@ pipeline { DEV_DOCKERHUB_IMAGE = 'lsiodev/nginx' PR_DOCKERHUB_IMAGE = 'lspipepr/nginx' DIST_IMAGE = 'alpine' - DIST_TAG = '3.14' - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.14/main/' + DIST_TAG = '3.15' + DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.15/main/' DIST_REPO_PACKAGES = 'nginx' MULTIARCH='true' CI='true' diff --git a/README.md b/README.md index 605f5e9..17f48b9 100644 --- a/README.md +++ b/README.md @@ -226,6 +226,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **20.08.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)). * **22.05.22:** - Install nginx version from 3.14. * **01.07.21:** - Rebasing to alpine 3.14. * **24.06.21:** - Update default nginx conf folder. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index a741533..032a7a1 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -15,8 +15,8 @@ repo_vars: - DEV_DOCKERHUB_IMAGE = 'lsiodev/nginx' - PR_DOCKERHUB_IMAGE = 'lspipepr/nginx' - DIST_IMAGE = 'alpine' - - DIST_TAG = '3.14' - - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.14/main/' + - DIST_TAG = '3.15' + - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.15/main/' - DIST_REPO_PACKAGES = 'nginx' - MULTIARCH='true' - CI='true' diff --git a/package_versions.txt b/package_versions.txt index 0319cf5..ded63a3 100644 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,13 +1,13 @@ alpine-baselayout-3.2.0-r16 alpine-keys-2.4-r0 -apache2-utils-2.4.54-r0 +apache2-utils-2.4.51-r0 apk-tools-2.12.7-r0 apr-1.7.0-r1 apr-util-1.6.1-r7 argon2-libs-20190702-r1 bash-5.1.16-r0 brotli-libs-1.0.9-r5 -busybox-1.33.1-r8 +busybox-1.33.1-r6 c-client-2007f-r11 ca-certificates-20220614-r0 ca-certificates-bundle-20220614-r0 @@ -44,7 +44,7 @@ libmcrypt-2.5.8-r9 libmd-1.0.3-r0 libmemcached-libs-1.0.18-r4 libpng-1.6.37-r1 -libpq-13.7-r0 +libpq-13.5-r0 libproc-3.3.17-r0 libressl3.3-libcrypto-3.3.6-r0 libressl3.3-libssl-3.3.6-r0 @@ -55,7 +55,7 @@ libsm-1.2.3-r0 libsodium-1.0.18-r0 libssl1.1-1.1.1q-r0 libstdc++-10.3.1_git20210424-r2 -libuuid-2.37.4-r0 +libuuid-2.37.2-r0 libwebp-1.2.0-r2 libx11-1.7.2-r0 libxau-1.0.9-r0 @@ -68,7 +68,7 @@ libxslt-1.1.35-r0 libxt-1.2.1-r0 libzip-1.7.3-r2 linux-pam-1.5.1-r1 -logrotate-3.18.1-r3 +logrotate-3.18.1-r0 lz4-libs-1.9.3-r1 memcached-1.6.9-r0 musl-1.2.2-r3 @@ -77,35 +77,35 @@ nano-5.7-r2 ncurses-libs-6.2_p20210612-r1 ncurses-terminfo-base-6.2_p20210612-r1 nghttp2-libs-1.43.0-r0 -nginx-1.20.2-r1 -nginx-mod-devel-kit-1.20.2-r1 -nginx-mod-http-brotli-1.20.2-r1 -nginx-mod-http-dav-ext-1.20.2-r1 -nginx-mod-http-echo-1.20.2-r1 -nginx-mod-http-fancyindex-1.20.2-r1 -nginx-mod-http-geoip-1.20.2-r1 -nginx-mod-http-geoip2-1.20.2-r1 -nginx-mod-http-headers-more-1.20.2-r1 -nginx-mod-http-image-filter-1.20.2-r1 -nginx-mod-http-nchan-1.20.2-r1 -nginx-mod-http-perl-1.20.2-r1 -nginx-mod-http-redis2-1.20.2-r1 -nginx-mod-http-set-misc-1.20.2-r1 -nginx-mod-http-upload-progress-1.20.2-r1 -nginx-mod-http-xslt-filter-1.20.2-r1 -nginx-mod-mail-1.20.2-r1 -nginx-mod-rtmp-1.20.2-r1 -nginx-mod-stream-1.20.2-r1 -nginx-mod-stream-geoip-1.20.2-r1 -nginx-mod-stream-geoip2-1.20.2-r1 -nginx-vim-1.20.2-r1 +nginx-1.20.2-r0 +nginx-mod-devel-kit-1.20.2-r0 +nginx-mod-http-brotli-1.20.2-r0 +nginx-mod-http-dav-ext-1.20.2-r0 +nginx-mod-http-echo-1.20.2-r0 +nginx-mod-http-fancyindex-1.20.2-r0 +nginx-mod-http-geoip-1.20.2-r0 +nginx-mod-http-geoip2-1.20.2-r0 +nginx-mod-http-headers-more-1.20.2-r0 +nginx-mod-http-image-filter-1.20.2-r0 +nginx-mod-http-nchan-1.20.2-r0 +nginx-mod-http-perl-1.20.2-r0 +nginx-mod-http-redis2-1.20.2-r0 +nginx-mod-http-set-misc-1.20.2-r0 +nginx-mod-http-upload-progress-1.20.2-r0 +nginx-mod-http-xslt-filter-1.20.2-r0 +nginx-mod-mail-1.20.2-r0 +nginx-mod-rtmp-1.20.2-r0 +nginx-mod-stream-1.20.2-r0 +nginx-mod-stream-geoip-1.20.2-r0 +nginx-mod-stream-geoip2-1.20.2-r0 +nginx-vim-1.20.2-r0 oniguruma-6.9.7.1-r0 openssl-1.1.1q-r0 pcre-8.44-r0 pcre2-10.36-r1 perl-5.32.1-r0 perl-error-0.17029-r1 -perl-git-2.32.3-r0 +perl-git-2.32.0-r0 php7-7.4.26-r0 php7-bcmath-7.4.26-r0 php7-bz2-7.4.26-r0 @@ -165,8 +165,8 @@ scanelf-1.3.2-r0 shadow-4.8.1-r0 skalibs-2.10.0.3-r0 sqlite-libs-3.35.5-r0 -ssl_client-1.33.1-r8 -tzdata-2022a-r0 +ssl_client-1.33.1-r6 +tzdata-2021e-r0 unixodbc-2.3.9-r1 utmps-0.1.0.2-r0 xz-5.2.5-r1 diff --git a/readme-vars.yml b/readme-vars.yml index 9ed20d6..874b7ea 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -40,6 +40,7 @@ app_setup_block: | # changelog changelogs: + - { date: "20.08.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." } - { date: "22.05.22:", desc: "Install nginx version from 3.14." } - { date: "01.07.21:", desc: "Rebasing to alpine 3.14." } - { date: "24.06.21:", desc: "Update default nginx conf folder." } diff --git a/root/etc/cont-init.d/40-config b/root/etc/cont-init.d/40-config deleted file mode 100644 index a9f006b..0000000 --- a/root/etc/cont-init.d/40-config +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/with-contenv bash - -# make our folders and links -mkdir -p \ - /config/geoip2db - -# remove lua bits from nginx.conf if not done before -if ! grep -q '#Removed lua' /config/nginx/nginx.conf; then - echo "Removing lua specific info from nginx.conf" - sed -i 's|\tlua_load_resty_core off;|\t#Removed lua. Do not remove this comment|g' /config/nginx/nginx.conf -fi - -# create GeoIP2 folder symlink -[[ -d /var/lib/libmaxminddb ]] && [[ ! -L /var/lib/libmaxminddb ]] && \ - rm -rf /var/lib/libmaxminddb -[[ ! -d /var/lib/libmaxminddb ]] && \ - ln -s /config/geoip2db /var/lib/libmaxminddb -# check GeoIP2 database -if [ -f /var/lib/libmaxminddb/GeoLite2-City.mmdb ]; then - echo "GeoIP2 database found" -else - echo "Starting 2019/12/30, GeoIP2 databases require personal license key to download. Please manually download/update the GeoIP2 db and save as /config/geoip2db/GeoLite2-City.mmdb" -fi \ No newline at end of file diff --git a/root/etc/cont-init.d/70-outdated b/root/etc/cont-init.d/70-outdated new file mode 100644 index 0000000..fc3791a --- /dev/null +++ b/root/etc/cont-init.d/70-outdated @@ -0,0 +1,6 @@ +#!/usr/bin/with-contenv bash + +if [[ -f /config/nginx/geoip2.conf ]]; then + echo "/config/nginx/geoip2.conf exists. + Please migrate to https://github.com/linuxserver/docker-mods/tree/swag-maxmind" +fi From c2d508ea8983b5d69e5f20e119001b481deb1948 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 21 Aug 2022 17:05:23 -0500 Subject: [PATCH 2/2] Keep /config volume consistently --- Dockerfile | 6 +++++- Dockerfile.aarch64 | 6 +++++- Dockerfile.armhf | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 926b1c6..ca09970 100644 --- a/Dockerfile +++ b/Dockerfile @@ -83,5 +83,9 @@ RUN \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ php8-pecl-xmlrpc -# add local files +# copy local files COPY root/ / + +# ports and volumes +EXPOSE 80 443 +VOLUME /config diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 4908d01..bc51eb7 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -83,5 +83,9 @@ RUN \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ php8-pecl-xmlrpc -# add local files +# copy local files COPY root/ / + +# ports and volumes +EXPOSE 80 443 +VOLUME /config diff --git a/Dockerfile.armhf b/Dockerfile.armhf index d321eb5..e3e9563 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -83,5 +83,9 @@ RUN \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ php8-pecl-xmlrpc -# add local files +# copy local files COPY root/ / + +# ports and volumes +EXPOSE 80 443 +VOLUME /config