FROM dunglas/frankenphp:php8.5-alpine

ARG USER_ID=1000
ARG GROUP_ID=1000
ARG USER_NAME=appuser

RUN install-php-extensions \
    pdo_pgsql \
    pgsql

RUN apk add --no-cache \
    git \
    dcron \
    curl \
    bash

RUN GOCROND_VERSION=22.9.1 \
    GOCRON_OS=linux \
    GOCRON_ARCH=amd64 \
    && wget -O /usr/local/bin/go-crond \
    https://github.com/webdevops/go-crond/releases/download/${GOCROND_VERSION}/go-crond.${GOCRON_OS}.${GOCRON_ARCH} \
    && chmod +x /usr/local/bin/go-crond

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

RUN addgroup -g ${GROUP_ID} ${USER_NAME} && \
    adduser -u ${USER_ID} -D -S -G ${USER_NAME} ${USER_NAME}

RUN setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/frankenphp

RUN mkdir -p /data/caddy /config/caddy && \
    chown -R ${USER_NAME}:${USER_NAME} /data /config && \
    chmod -R 755 /data /config

WORKDIR /var/www

COPY --chown=${USER_NAME}:${USER_NAME} laravel/ /var/www/

RUN chown -R ${USER_NAME}:${USER_NAME} /var/www && \
    find /var/www -type f -exec chmod 644 {} \; && \
    find /var/www -type d -exec chmod 755 {} \; && \
    chmod -R 775 /var/www/storage /var/www/bootstrap


USER ${USER_NAME}