ARG PHP_VERSION=8.4
FROM serversideup/php:${PHP_VERSION}-cli AS phpcli

##########
# S6 Build
##########
FROM phpcli AS s6-build

ARG CONF_PATH

USER root

ARG S6_DIR='/opt/s6/'
ARG S6_SRC_URL="https://github.com/just-containers/s6-overlay/releases/download"

# copy our scripts
COPY --chmod=755 $CONF_PATH /

RUN s6-install.sh

############
# BASE IMAGE
############
FROM phpcli AS base

ARG CONF_PATH
ARG CUSTOM_CONF_PATH

USER root

LABEL authors="Kirschbaum"
LABEL maintainer="Kirschbaum"

ENV AUTORUN_ENABLED=false
ENV AUTORUN_LARAVEL_MIGRATION=false

# copy our scripts
RUN test -n "$CUSTOM_CONF_PATH"

COPY --chmod=755 $CONF_PATH /
COPY --chmod=755 $CUSTOM_CONF_PATH /

# copy s6-overlay from s6-build
COPY --from=s6-build /opt/s6/ /

RUN apt-get update \
&& apt-get upgrade -y

RUN install-php-extensions gd intl

###################
# Development image
###################
FROM base AS development

# Save the build arguments as a variable
ARG USER_ID
ARG GROUP_ID

# Drop back to our unprivileged user
USER www-data

##############
# Deploy image
##############
FROM base AS deploy

ENV CONTAINER_TYPE=cli

COPY --chown=www-data:www-data . /var/www/html
COPY --chown=www-data:www-data .sst/laravel/deploy/.env /var/www/html/.env

# Fix S6 Overlay issues with Big Cloud PaaS (https://github.com/serversideup/docker-php/pull/376#issuecomment-2179262427)
RUN chown -R www-data:www-data /run

# Copy deploy script generated into .sst/laravel by the build step
COPY --chmod=755 .sst/laravel/deploy/60-deploy.sh /etc/entrypoint.d/60-deploy.sh

USER www-data

ENTRYPOINT ["entrypoint.sh"]

# Set stop signal to SIGQUIT for a graceful shutdown instead of S6's preferred SIGTERM (https://github.com/just-containers/s6-overlay/issues/586)
STOPSIGNAL SIGQUIT

CMD ["/init"]
