FROM php:8.0-apache AS base ENV FLYSPRAY /var/www/flyspray WORKDIR $FLYSPRAY RUN apt-get update -y && \ apt-get upgrade -y && \ apt-get install -y graphviz libpq-dev libfreetype6-dev libjpeg-dev zlib1g-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* RUN docker-php-ext-configure gd --with-freetype --with-jpeg && \ docker-php-ext-install -j$(nproc) exif gd pgsql ENV APACHE_DOCUMENT_ROOT $FLYSPRAY RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf && \ sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf # The base target can be used for development also # Run `docker build --target dev --tag flyspray:base` to build the base image` # You can use this as part of a docker-compose setup to develop the flyspray application FROM base AS dev RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" FROM composer:2.5.1 AS build ARG flyspray_src=https://github.com/flyspray/flyspray.git ARG flyspray_branch=master # Only do a shallow clone RUN git clone --depth 1 "$flyspray_src" --branch "$flyspray_branch" . && rm -rf .git RUN composer install --ignore-platform-reqs --no-dev --optimize-autoloader FROM base AS final RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" COPY --from=build --chown=www-data:www-data /app "$FLYSPRAY" VOLUME $FLYSPRAY/attachments, $FLYSPRAY/avatars EXPOSE 80 443