Reduced docker image size by ensuring dev native libs are not included in final image

This commit is contained in:
Alejandro Celaya 2022-01-03 18:48:08 +01:00
parent 4103ccf791
commit 81f82d3b73
2 changed files with 9 additions and 20 deletions

View file

@ -11,23 +11,14 @@ WORKDIR /etc/shlink
# Install required PHP extensions # Install required PHP extensions
RUN \ RUN \
# Install extensions with no extra dependencies # Temp install dev dependencies needed to compile the extensions
docker-php-ext-install -j"$(nproc)" pdo_mysql calendar sockets bcmath && \ apk add --no-cache --virtual .dev-deps sqlite-dev postgresql-dev icu-dev libzip-dev zlib-dev libpng-dev gmp-dev && \
# Install sqlite docker-php-ext-install -j"$(nproc)" pdo_mysql pdo_pgsql intl calendar sockets bcmath zip gd gmp && \
apk add --no-cache sqlite-libs sqlite-dev && \ apk add --no-cache sqlite-libs && \
docker-php-ext-install -j"$(nproc)" pdo_sqlite && \ docker-php-ext-install -j"$(nproc)" pdo_sqlite && \
# Install postgres # Remove temp dev extensions, and install prod equivalents that are required at runtime
apk add --no-cache postgresql-dev && \ apk del .dev-deps && \
docker-php-ext-install -j"$(nproc)" pdo_pgsql && \ apk add --no-cache postgresql icu libzip libpng gmp
# Install intl
apk add --no-cache icu-dev && \
docker-php-ext-install -j"$(nproc)" intl && \
# Install zip and gd
apk add --no-cache libzip-dev zlib-dev libpng-dev && \
docker-php-ext-install -j"$(nproc)" zip gd && \
# Install gmp
apk add --no-cache gmp-dev && \
docker-php-ext-install -j"$(nproc)" gmp
# Install sqlsrv driver # Install sqlsrv driver
RUN if [ $(uname -m) == "x86_64" ]; then \ RUN if [ $(uname -m) == "x86_64" ]; then \

View file

@ -24,11 +24,9 @@ if [ ! -z "${GEOLITE_LICENSE_KEY}" ]; then
php bin/cli visit:download-db -n ${flags} php bin/cli visit:download-db -n ${flags}
fi fi
# Periodicaly run visit:locate every hour # Periodically run visit:locate every hour, if ENABLE_PERIODIC_VISIT_LOCATE=true was provided
# https://shlink.io/documentation/long-running-tasks/#locate-visits
# set env var "ENABLE_PERIODIC_VISIT_LOCATE=true" to enable
if [ $ENABLE_PERIODIC_VISIT_LOCATE ]; then if [ $ENABLE_PERIODIC_VISIT_LOCATE ]; then
echo "Configuring periodic visit locate..." echo "Configuring periodic visit location..."
echo "0 * * * * php /etc/shlink/bin/cli visit:locate -q" > /etc/crontabs/root echo "0 * * * * php /etc/shlink/bin/cli visit:locate -q" > /etc/crontabs/root
/usr/sbin/crond & /usr/sbin/crond &
fi fi