Fix slim builds for arm64

This commit is contained in:
cytopia
2022-12-08 05:02:22 +01:00
parent 39b32384b6
commit 4cc5e57f24
15 changed files with 954 additions and 630 deletions

View File

@@ -103,9 +103,8 @@ RUN set -eux \
{%- endif -%} {%- endif -%}
{%- endfor %} {%- endfor %}
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -139,6 +138,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -156,40 +180,39 @@ FROM devilbox/php-fpm:{{ php_version }}-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -202,56 +225,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-{{ php_version }}.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-{{ php_version }}.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-{{ php_version }}.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-{{ php_version }}.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -66,8 +66,8 @@ os_release:
base_apt_repositories_enabled: base_apt_repositories_enabled:
- backports - backports
- blackfire - blackfire
- mongo # - mongo # Note: This is done separately in tools (to check ARCH as well)
- pgsql # - pgsql # Note: This is done separately in tools (to check ARCH as well)
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------

View File

@@ -34,8 +34,6 @@ RUN set -eux \
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +147,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +182,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +224,39 @@ FROM devilbox/php-fpm:5.2-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +269,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-5.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-5.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-5.2.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-5.2.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,8 +34,6 @@ RUN set -eux \
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +147,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +182,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +224,39 @@ FROM devilbox/php-fpm:5.3-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +269,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-5.3.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-5.3.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-5.3.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-5.3.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,8 +34,6 @@ RUN set -eux \
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +147,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +182,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +224,39 @@ FROM devilbox/php-fpm:5.4-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +269,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-5.4.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-5.4.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-5.4.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-5.4.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,8 +34,6 @@ RUN set -eux \
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +147,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +182,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +224,39 @@ FROM devilbox/php-fpm:5.5-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +269,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-5.5.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-5.5.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-5.5.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-5.5.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,8 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -153,9 +151,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -189,6 +186,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -206,40 +228,39 @@ FROM devilbox/php-fpm:5.6-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -252,56 +273,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-5.6.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-5.6.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-5.6.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-5.6.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,8 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -153,9 +151,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -189,6 +186,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -206,40 +228,39 @@ FROM devilbox/php-fpm:7.0-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -252,56 +273,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-7.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-7.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-7.0.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-7.0.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,10 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
&& echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +145,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +180,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +222,39 @@ FROM devilbox/php-fpm:7.1-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +267,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-7.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-7.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-7.1.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-7.1.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,10 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
&& echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +145,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +180,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +222,39 @@ FROM devilbox/php-fpm:7.2-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +267,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-7.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-7.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-7.2.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-7.2.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,10 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +145,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +180,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +222,39 @@ FROM devilbox/php-fpm:7.3-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +267,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-7.3.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-7.3.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-7.3.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-7.3.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,10 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +145,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +180,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +222,39 @@ FROM devilbox/php-fpm:7.4-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +267,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-7.4.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-7.4.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-7.4.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-7.4.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,10 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +145,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +180,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +222,39 @@ FROM devilbox/php-fpm:8.0-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +267,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-8.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-8.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-8.0.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-8.0.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,10 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +145,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +180,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +222,39 @@ FROM devilbox/php-fpm:8.1-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +267,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -34,10 +34,6 @@ RUN set -eux \
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& true && true
### ###
@@ -149,9 +145,8 @@ RUN set -eux \
\ \
&& true && true
### ###
### Prepare libraries for copying (keep symlinks) ### Prepare required shared libraries for copying (keep symlinks)
### ###
RUN set -eux \ RUN set -eux \
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ && LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
@@ -185,6 +180,31 @@ RUN set -eux \
fi \ fi \
done done
###
### Fix expected PostgreSQL directories
###
### This might not exist on arm64 as software was not available,
### but they are still needed to be present, so we can copy them.
###
RUN set -eux \
&& if [ ! -d "/usr/lib/postgresql" ]; then \
mkdir "/usr/lib/postgresql"; \
fi \
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
mkdir "/usr/share/postgresql-common"; \
fi
###
### Prepare MongoDB binaries for copying.
###
### They might not be available on all architectures (e.g.: arm64).
###
RUN set -eux \
&& mkdir /tmp/mongo \
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
cp -r /usr/bin/mongo* /tmp/mongo/; \
fi
######################################################################################################################## ########################################################################################################################
@@ -202,40 +222,39 @@ FROM devilbox/php-fpm:8.2-prod as devilbox-slim-base
ARG ARCH ARG ARCH
### ###
### Copy libraries ### Copy shared libraries
### ###
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/ COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
### ###
### System files ### Copy system files
### ###
COPY --from=devilbox-slim-base-builder /etc/group /etc/group COPY --from=devilbox-slim-base-builder /etc/group /etc/group
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
### ###
### Blackfire ### Copy Blackfire
### ###
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
### ###
### Copy mhsendmail ### Copy mhsendmail
### ###
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/ COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
### ###
### Copy Mongo client ### Copy MongoDB client (if exists)
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/ COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
### ###
### Copy mysql* binaries ### Copy MysQL Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
@@ -248,56 +267,59 @@ COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/ COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
### ###
### Copy PostgreSQL client ### Copy PostgreSQL
###
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
###
### Create PostgreSQL symlinks
### ###
RUN set -eux \ RUN set -eux \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \ && if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \ ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \ && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo && ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql fi
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
### ###
### Copy redis* binaries ### Copy Redis Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
### ###
### Copy sqlite* binaries ### Copy SQLite Client
### ###
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/ COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
### ###
### Copy configuration files ### ADD PHP configuration files
### ###
COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf
###
### ADD Devilbox configuration files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/bash-devilbox /etc/bash-devilbox