Skip to content

Commit

Permalink
Merge pull request #310 from crazy-max/alpine-3.21
Browse files Browse the repository at this point in the history
Alpine Linux 3.21 and PHP 8.3
  • Loading branch information
crazy-max authored Jan 22, 2025
2 parents c9bc713 + fc72b93 commit 511c338
Show file tree
Hide file tree
Showing 12 changed files with 60 additions and 59 deletions.
77 changes: 38 additions & 39 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1

ARG ANONADDY_VERSION=1.3.0
ARG ALPINE_VERSION=3.18
ARG ALPINE_VERSION=3.21

FROM crazymax/yasu:latest AS yasu
FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3
Expand All @@ -18,35 +18,35 @@ RUN apk --no-cache add \
mysql-client \
nginx \
openssl \
php82 \
php82-cli \
php82-ctype \
php82-curl \
php82-dom \
php82-fileinfo \
php82-fpm \
php82-gd \
php82-gmp \
php82-iconv \
php82-intl \
php82-json \
php82-mbstring \
php82-opcache \
php82-openssl \
php82-pdo \
php82-pdo_mysql \
php82-pecl-imagick \
php82-phar \
php82-redis \
php82-session \
php82-simplexml \
php82-sodium \
php82-tokenizer \
php82-xml \
php82-xmlreader \
php82-xmlwriter \
php82-zip \
php82-zlib \
php83 \
php83-cli \
php83-ctype \
php83-curl \
php83-dom \
php83-fileinfo \
php83-fpm \
php83-gd \
php83-gmp \
php83-iconv \
php83-intl \
php83-json \
php83-mbstring \
php83-opcache \
php83-openssl \
php83-pdo \
php83-pdo_mysql \
php83-pecl-imagick \
php83-phar \
php83-redis \
php83-session \
php83-simplexml \
php83-sodium \
php83-tokenizer \
php83-xml \
php83-xmlreader \
php83-xmlwriter \
php83-zip \
php83-zlib \
postfix \
postfix-mysql \
rspamd \
Expand All @@ -55,7 +55,6 @@ RUN apk --no-cache add \
shadow \
tar \
tzdata \
&& ln -s /usr/bin/php82 /usr/bin/php \
&& cp /etc/postfix/master.cf /etc/postfix/master.cf.orig \
&& cp /etc/postfix/main.cf /etc/postfix/main.cf.orig \
&& apk --no-cache add -t build-dependencies \
Expand All @@ -65,12 +64,12 @@ RUN apk --no-cache add \
gpgme-dev \
libtool \
pcre-dev \
php82-dev \
php82-pear \
&& pecl82 install gnupg \
&& echo "extension=gnupg.so" > /etc/php82/conf.d/60_gnupg.ini \
&& pecl82 install mailparse \
&& echo "extension=mailparse.so" > /etc/php82/conf.d/60_mailparse.ini \
php83-dev \
php83-pear \
&& pecl83 install gnupg \
&& echo "extension=gnupg.so" > /etc/php83/conf.d/60_gnupg.ini \
&& pecl83 install mailparse \
&& echo "extension=mailparse.so" > /etc/php83/conf.d/60_mailparse.ini \
&& apk del build-dependencies \
&& rm -rf /tmp/* /var/www/*

Expand All @@ -97,11 +96,11 @@ RUN apk --no-cache add -t build-dependencies \
&& git init . && git remote add origin "https://github.com/anonaddy/anonaddy.git" \
&& git fetch --depth 1 origin "v${ANONADDY_VERSION}" && git checkout -q FETCH_HEAD \
&& composer install --optimize-autoloader --no-dev --no-interaction --no-ansi --ignore-platform-req=php-64bit \
&& chown -R anonaddy. /var/www/anonaddy \
&& chown -R anonaddy:anonaddy /var/www/anonaddy \
&& npm ci --ignore-scripts \
&& APP_URL=https://addy-sh.test npm run production \
&& npm prune --production \
&& chown -R nobody.nogroup /var/www/anonaddy \
&& chown -R nobody:nogroup /var/www/anonaddy \
&& apk del build-dependencies \
&& rm -rf /root/.composer \
/root/.config \
Expand Down
6 changes: 3 additions & 3 deletions rootfs/etc/cont-init.d/02-fix-perms.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ mkdir -p /data \
/data/postfix/queue \
/var/run/nginx \
/var/run/php-fpm
chown anonaddy. /data
chown -R anonaddy. \
chown anonaddy:anonaddy /data
chown -R anonaddy:anonaddy \
/data/dkim \
/tpls \
/var/lib/nginx \
/var/log/nginx \
/var/log/php82 \
/var/log/php83 \
/var/run/nginx \
/var/run/php-fpm \
/var/www/anonaddy/bootstrap/cache \
Expand Down
14 changes: 7 additions & 7 deletions rootfs/etc/cont-init.d/10-config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,22 @@ mkdir -p /data/config
if [ ! -L /var/www/anonaddy/.config ]; then
ln -sf /data/config /var/www/anonaddy/.config
fi
chown -h anonaddy. /var/www/anonaddy/config
chown -R anonaddy. /data/config
chown -h anonaddy:anonaddy /var/www/anonaddy/config
chown -R anonaddy:anonaddy /data/config
mkdir -p /data/storage
if [ ! -L /var/www/anonaddy/storage ]; then
cp -Rf /var/www/anonaddy/storage /data
rm -rf /var/www/anonaddy/storage
ln -sf /data/storage /var/www/anonaddy/storage
fi
chown -h anonaddy. /var/www/anonaddy/storage
chown -R anonaddy. /data/storage
chown -h anonaddy:anonaddy /var/www/anonaddy/storage
chown -R anonaddy:anonaddy /data/storage
mkdir -p /data/.gnupg
if [ ! -L /var/www/anonaddy/.gnupg ]; then
ln -sf /data/.gnupg /var/www/anonaddy/.gnupg
fi
chown -h anonaddy. /var/www/anonaddy/.gnupg
chown -R anonaddy. /data/.gnupg
chown -h anonaddy:anonaddy /var/www/anonaddy/.gnupg
chown -R anonaddy:anonaddy /data/.gnupg
chmod 700 /data/.gnupg

echo "Checking database connection..."
Expand All @@ -45,7 +45,7 @@ if [ -z "$DB_PASSWORD" ]; then
echo >&2 "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined"
exit 1
fi
dbcmd="mysql -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USERNAME}" "-p${DB_PASSWORD}""
dbcmd="mariadb -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USERNAME}" "-p${DB_PASSWORD}""

echo "Waiting ${DB_TIMEOUT}s for database to be ready..."
counter=1
Expand Down
10 changes: 5 additions & 5 deletions rootfs/etc/cont-init.d/11-config-php.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ set -e
. $(dirname $0)/00-env

echo "Init PHP extensions"
cp -Rf /tpls/etc/php82/conf.d /etc/php82
cp -Rf /tpls/etc/php83/conf.d /etc/php83

echo "Setting PHP-FPM configuration"
sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \
-e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \
-e "s/@CLEAR_ENV@/$CLEAR_ENV/g" \
/tpls/etc/php82/php-fpm.d/www.conf >/etc/php82/php-fpm.d/www.conf
/tpls/etc/php83/php-fpm.d/www.conf >/etc/php83/php-fpm.d/www.conf

echo "Setting PHP INI configuration"
sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php82/php.ini
sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php82/php.ini
sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php83/php.ini
sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php83/php.ini

echo "Setting OpCache configuration"
sed -e "s/@OPCACHE_MEM_SIZE@/$OPCACHE_MEM_SIZE/g" \
/tpls/etc/php82/conf.d/opcache.ini >/etc/php82/conf.d/opcache.ini
/tpls/etc/php83/conf.d/opcache.ini >/etc/php83/conf.d/opcache.ini
2 changes: 1 addition & 1 deletion rootfs/etc/cont-init.d/13-config-anonaddy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ if [ -f "/data/.env" ]; then
cat "/data/.env" >> /var/www/anonaddy/.env
fi

chown anonaddy. /var/www/anonaddy/.env
chown anonaddy:anonaddy /var/www/anonaddy/.env

echo "Trust all proxies"
sed -i "s|^ protected \$proxies.*| protected \$proxies = '\*';|g" /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php
2 changes: 1 addition & 1 deletion rootfs/etc/cont-init.d/50-svc-main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ cat > /etc/services.d/php-fpm/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
s6-setuidgid ${PUID}:${PGID}
php-fpm82 -F
php-fpm83 -F
EOL
chmod +x /etc/services.d/php-fpm/run
4 changes: 2 additions & 2 deletions rootfs/etc/cont-init.d/60-svc-rspamd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ fi

# Init
mkdir -p -m o-rwx /var/run/rspamd
chown rspamd. /var/run/rspamd
chown rspamd:rspamd /var/run/rspamd

# Fix perms
chown -R rspamd. /etc/rspamd /var/lib/rspamd
chown -R rspamd:rspamd /etc/rspamd /var/lib/rspamd

# Create service
mkdir -p /etc/services.d/rspamd
Expand Down
2 changes: 2 additions & 0 deletions rootfs/etc/my.cnf.d/skip-ssl.cnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[client]
skip-ssl = true
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion rootfs/usr/local/bin/gen-dkim
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ echo "generating private and storing in ${DKIM_PRIVATE_KEY}"
echo "generating DNS TXT record with public key and storing it in /data/dkim/${ANONADDY_DOMAIN}.txt"
echo ""
rspamadm dkim_keygen -s "${ANONADDY_DKIM_SELECTOR}" -b 2048 -d "${ANONADDY_DOMAIN}" -k "${DKIM_PRIVATE_KEY}" | tee -a "/data/dkim/${ANONADDY_DOMAIN}.txt"
chown -R anonaddy. /data/dkim
chown -R anonaddy:anonaddy /data/dkim

0 comments on commit 511c338

Please sign in to comment.