Files
iblogs/Dockerfile
indifferentketchup f72e2d0936 chore(docker): install git and ca-certificates
Required so Composer can resolve VCS-based dependencies (e.g. forked codex packages) at build time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 10:59:37 +00:00

40 lines
1.0 KiB
Docker

FROM dunglas/frankenphp:1-php8.5
# System Setup
RUN install-php-extensions mongodb zip
RUN apt-get update && apt-get install -y --no-install-recommends git ca-certificates && rm -rf /var/lib/apt/lists/*
ARG USER=iblogs
RUN useradd ${USER} && \
setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/frankenphp
COPY --from=composer/composer:2-bin /composer /usr/bin/composer
WORKDIR /app
# Dependencies (Cached)
COPY composer.json composer.lock ./
RUN --mount=type=cache,target=/tmp/cache/composer \
COMPOSER_CACHE_DIR=/tmp/cache/composer \
composer install --no-dev --no-interaction --no-scripts --no-autoloader --prefer-dist --ignore-platform-req=ext-frankenphp
# Application Setup
COPY docker/Caddyfile /etc/frankenphp/Caddyfile
COPY docker/iblogs.ini /usr/local/etc/php/conf.d/iblogs.ini
COPY . .
RUN composer dump-autoload --optimize --no-dev --classmap-authoritative
RUN php build.php
# Permissions & Runtime
RUN chown -R ${USER}:${USER} /config/caddy /data/caddy /app
USER ${USER}
EXPOSE 80
EXPOSE 443
EXPOSE 443/udp
VOLUME ["/data"]