FROM dunglas/frankenphp:latest-php8.3-alpine

# Base
RUN apk add --no-cache bash

# Additional extensions:
RUN install-php-extensions \
    ldap \
    memcached

RUN curl -4 https://getcomposer.org/installer|php -- --install-dir=/usr/local/bin --filename=composer
ENV COMPOSER_HOME=/var/cache/composer

ENV SITE_USER=www-data

COPY docker/init-docker /sbin/init-docker
RUN chmod 550 /sbin/init-docker && chown ${SITE_USER}:0 /sbin/init-docker

COPY . /var/www/html/
WORKDIR /var/www/html

RUN mkdir -p ${COMPOSER_HOME} \
	&& ([ -r auth.json ] && mv auth.json ${COMPOSER_HOME}) || true \
	&& touch .composer.refresh \
	&& mv .env.example .env \
	&& FORCE_PERMS=1 /sbin/init-docker \
	&& rm -rf ${COMPOSER_HOME}/* composer.lock

# Fix start up items
RUN sed -i -e 's/^{$CADDY_EXTRA_CONFIG}$/{$CADDY_EXTRA_CONFIG} /' /etc/caddy/Caddyfile
RUN chown ${SITE_USER} /config/caddy /data/caddy

USER ${SITE_USER}

# Control which port to open
ENV SERVER_NAME=:8080
EXPOSE 8080