From 1020db8c7b206efbe2c4a53bd1e4ce31032277a3 Mon Sep 17 00:00:00 2001 From: Jonas Kattendick Date: Fri, 3 Feb 2023 13:17:06 +0100 Subject: [PATCH] feat(1.0-dev): build of master --- 1.0-dev/mysqli/Dockerfile | 47 +++++++++++++++++++++++++++++++++++++++ 1.0-dev/pgsql/Dockerfile | 47 +++++++++++++++++++++++++++++++++++++++ build-all.sh | 2 ++ 3 files changed, 96 insertions(+) create mode 100644 1.0-dev/mysqli/Dockerfile create mode 100644 1.0-dev/pgsql/Dockerfile diff --git a/1.0-dev/mysqli/Dockerfile b/1.0-dev/mysqli/Dockerfile new file mode 100644 index 0000000..c212f05 --- /dev/null +++ b/1.0-dev/mysqli/Dockerfile @@ -0,0 +1,47 @@ +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 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 mysqli + +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 diff --git a/1.0-dev/pgsql/Dockerfile b/1.0-dev/pgsql/Dockerfile new file mode 100644 index 0000000..5095ec8 --- /dev/null +++ b/1.0-dev/pgsql/Dockerfile @@ -0,0 +1,47 @@ +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 diff --git a/build-all.sh b/build-all.sh index 9166c82..e2d5fc9 100755 --- a/build-all.sh +++ b/build-all.sh @@ -3,5 +3,7 @@ name="${1:-rkcsd/flyspray}" +docker build -t "$name:1.0-dev-mysqli" -t "$name:1.0-dev" -t "$name:dev" ./1.0-dev/mysqli +docker build -t "$name:1.0-dev-pgsql" ./1.0-dev/pgsql docker build -t "$name:1.0-rc10-mysqli" -t "$name:1.0-rc10" -t "$name:latest" ./1.0-rc10/mysqli docker build -t "$name:1.0-rc10-pgsql" ./1.0-rc10/pgsql