ARG PHP_IMAGE=docker.io/library/php:8.4-apache-bookworm@sha256:57ccfbd765e5ee5f85dee5864e47ca8db0b540b0c091c052d9b275b2498a5395
FROM ${PHP_IMAGE} AS source
ARG APP_SOURCE_URL
ARG APP_SOURCE_SHA256
ARG APP_VERSION
ARG APP_REVISION
ARG APP_KIND
RUN test -n "$APP_SOURCE_URL" && test -n "$APP_SOURCE_SHA256" && curl --fail --location --proto '=https' --tlsv1.2 "$APP_SOURCE_URL" -o /tmp/app.tar.gz && printf '%s  /tmp/app.tar.gz\n' "$APP_SOURCE_SHA256" | sha256sum -c - && mkdir /source && tar -xzf /tmp/app.tar.gz --strip-components=1 -C /source && test -f /source/composer.lock
COPY applications/customer-cloud/images/php-web /packaging/php-web
COPY applications/customer-cloud/images/source-bundle.sh /packaging/source-bundle.sh
RUN sh /packaging/source-bundle.sh && if test "$APP_KIND" = pollaris; then sed -i 's@</body>@<footer><a href="/socialed-source.tar.gz" download>Quellcode dieser Version</a></footer></body>@' /source/templates/base.html.twig; fi
RUN if test "$APP_KIND" = hortusfox; then cp /packaging/php-web/dependencies/hortusfox/composer.json /packaging/php-web/dependencies/hortusfox/composer.lock /source/; fi
RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends unzip && curl --fail --location --proto '=https' --tlsv1.2 https://getcomposer.org/download/2.8.12/composer.phar -o /tmp/composer.phar && echo 'f446ea719708bb85fcbf4ef18def5d0515f1f9b4d703f6d820c9c1656e10a2f2  /tmp/composer.phar' | sha256sum -c - && cd /source && rm -rf vendor && php /tmp/composer.phar install --no-dev --no-scripts --no-plugins --no-interaction --prefer-dist --optimize-autoloader --ignore-platform-req=ext-*
FROM ${PHP_IMAGE}
ARG APP_KIND
ARG POSTGRES_SERVER_VERSION
RUN test "$APP_KIND" = pollaris || test "$APP_KIND" = hortusfox
RUN apt-get update -qq && apt-get dist-upgrade -y -qq && apt-get install -y -qq --no-install-recommends libpq-dev libpng-dev libjpeg62-turbo-dev libzip-dev libicu-dev libonig-dev && docker-php-ext-configure gd --with-jpeg && docker-php-ext-install -j2 pdo_pgsql pdo_mysql mbstring intl gd zip opcache exif pcntl bcmath && apt-mark manual libpq5 libpng16-16 libjpeg62-turbo libzip4 libicu72 libonig5 && apt-get purge -y -qq --auto-remove libpq-dev libpng-dev libjpeg62-turbo-dev libzip-dev libicu-dev libonig-dev $PHPIZE_DEPS && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && a2enmod rewrite headers && sed -i 's/Listen 80/Listen 8080/' /etc/apache2/ports.conf && sed -i 's@/var/run/apache2@/tmp/apache2@g;s@/var/lock/apache2@/tmp/apache2-lock@g' /etc/apache2/envvars
COPY --from=source --chown=33:33 /source /app
COPY --from=source /socialed-source.tar.gz /app/public/socialed-source.tar.gz
COPY applications/customer-cloud/images/php-web/apache.conf /etc/apache2/sites-available/000-default.conf
COPY applications/customer-cloud/images/php-web/production.ini /usr/local/etc/php/conf.d/socialed-production.ini
COPY applications/customer-cloud/images/php-web/autoload-runtime.php /app/vendor/autoload_runtime.php
COPY applications/customer-cloud/images/php-web/bootstrap.php /app/socialed-bootstrap.php
COPY applications/customer-cloud/images/php-web/start.sh /usr/local/bin/socialed-app-start
COPY applications/customer-cloud/images/php-web/maintenance-cli.php /tmp/socialed-maintenance-cli.php
COPY applications/customer-cloud/images/php-web/doctrine-platform.yaml /tmp/socialed-postgres.yaml
RUN if test "$APP_KIND" = hortusfox; then php /tmp/socialed-maintenance-cli.php; fi && rm /tmp/socialed-maintenance-cli.php
RUN if test "$APP_KIND" = pollaris; then cp /tmp/socialed-postgres.yaml /app/config/packages/socialed_postgres.yaml; fi && rm /tmp/socialed-postgres.yaml
RUN rm -rf /app/public/install && mkdir -p /opt/socialed-seed && if test "$APP_KIND" = hortusfox; then \
    for name in img themes; do cp -a "/app/public/$name" "/opt/socialed-seed/$name"; rm -rf "/app/public/$name"; ln -s "/app/storage/$name" "/app/public/$name"; done; \
    cp -a /app/app/migrations /opt/socialed-seed/migrations && rm -rf /app/app/migrations /app/app/logs /app/public/attachments /app/public/backup && ln -s /app/storage/migrations /app/app/migrations && ln -s /app/storage/logs /app/app/logs && ln -s /app/storage/attachments /app/public/attachments && ln -s /app/storage/backup /app/public/backup && rm -f /app/.env && ln -s /app/storage/.env /app/.env; \
    fi && chmod 0555 /usr/local/bin/socialed-app-start
WORKDIR /app
ENV HOME=/tmp CLOUD_APP_KIND=${APP_KIND} CLOUD_POSTGRES_SERVER_VERSION=${POSTGRES_SERVER_VERSION}
USER 33:33
EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/socialed-app-start"]
