Files
flyspray-docker/1.0-dev/pgsql/Dockerfile

48 lines
1.4 KiB
Docker

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