1+ FROM composer:2.4 AS composer
2+
13FROM php:8-fpm
24
35LABEL maintainer="Passbolt SA <contact@passbolt.com>"
@@ -8,6 +10,7 @@ ARG PASSBOLT_CURL_HEADERS=""
810ARG PASSBOLT_FLAVOUR="ce"
911
1012ARG PHP_EXTENSIONS="gd \
13+ zip \
1114 intl \
1215 pdo_mysql \
1316 opcache \
@@ -24,6 +27,8 @@ ARG PASSBOLT_DEV_PACKAGES="libgpgme11-dev \
2427 libicu-dev \
2528 libxslt1-dev \
2629 libmcrypt-dev \
30+ libzip-dev \
31+ zip \
2732 unzip \
2833 libldap2-dev"
2934
@@ -40,6 +45,9 @@ ENV PHP_EXT_DIR="/usr/src/php/ext"
4045ENV PASSBOLT_FLAVOUR=$PASSBOLT_FLAVOUR
4146
4247WORKDIR /var/www/passbolt
48+
49+ COPY --from=composer /usr/bin/composer /usr/bin/composer
50+
4351RUN apt-get update \
4452 && apt-get -y install --no-install-recommends \
4553 $PASSBOLT_DEV_PACKAGES \
@@ -56,31 +64,18 @@ RUN apt-get update \
5664 && docker-php-ext-install -j4 $PHP_EXTENSIONS $PECL_PASSBOLT_EXTENSIONS \
5765 && docker-php-ext-enable $PHP_EXTENSIONS $PECL_PASSBOLT_EXTENSIONS \
5866 && docker-php-source delete \
59- && EXPECTED_SIGNATURE=$(curl -s https://composer.github.io/installer.sig) \
60- && curl -o composer-setup.php https://getcomposer.org/installer \
61- && ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');" ) \
62- && if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then \
63- >&2 echo 'ERROR: Invalid installer signature' ; \
64- rm composer-setup.php; \
65- exit 1; \
66- fi \
67- && php composer-setup.php \
68- && mv composer.phar /usr/local/bin/composer \
69- && rm composer-setup.php \
7067 && curl -sSL -H "$PASSBOLT_CURL_HEADERS" "$PASSBOLT_URL" | tar zxf - -C . --strip-components 1 \
71- && composer install -n -- no-dev --optimize-autoloader \
68+ && composer install -- no-ansi --no-interaction \
7269 && chown -R www-data:www-data . \
7370 && chmod 775 $(find /var/www/passbolt/tmp -type d) \
7471 && chmod 664 $(find /var/www/passbolt/tmp -type f) \
7572 && chmod 775 $(find /var/www/passbolt/webroot/img/public -type d) \
7673 && chmod 664 $(find /var/www/passbolt/webroot/img/public -type f) \
7774 && rm /etc/nginx/sites-enabled/default \
78- && apt-get purge -y --auto-remove $PASSBOLT_DEV_PACKAGES \
7975 && rm -rf /var/lib/apt/lists/* \
80- && rm /usr/local/bin/composer \
8176 && echo 'php_flag[expose_php] = off' > /usr/local/etc/php-fpm.d/expose.conf \
8277 && sed -i 's/# server_tokens/server_tokens/' /etc/nginx/nginx.conf \
83- && mv "$PHP_INI_DIR/php.ini-production " "$PHP_INI_DIR/php.ini" \
78+ && mv "$PHP_INI_DIR/php.ini-development " "$PHP_INI_DIR/php.ini" \
8479 && echo "* * * * * su -c \" source /etc/environment ; /var/www/passbolt/bin/cake EmailQueue.sender\" -s /bin/bash www-data >> /var/log/cron.log 2>&1" >> /etc/cron.d/passbolt_email \
8580 && crontab /etc/cron.d/passbolt_email \
8681 && ln -s $(which php-fpm) $(which php-fpm)7.3
0 commit comments