Two file renames (docker/mclogs.ini -> docker/iblogs.ini, web/public/css/mclogs.css -> web/public/css/iblogs.css) plus the internal references that pointed at them (Dockerfile COPY directive, the linux user name in the container). Also catches the runtime identifier renames: env-var prefix MCLOGS_* -> IBLOGS_* (compose files), browser cookie name MCLOGS_SETTINGS -> IBLOGS_SETTINGS (web/public/js/log.js), production image tag ghcr.io/aternosorg/mclogs:2 -> ghcr.io/indifferentketchup/iblogs:2, and the README walk-through with the new branding. example.config.json branding strings (legal contact, mclo.gs frontend name) and visible UI text (taglines, meta descriptions) are deferred to a separate branding commit.
39 lines
941 B
Docker
39 lines
941 B
Docker
FROM dunglas/frankenphp:1-php8.5
|
|
|
|
# System Setup
|
|
RUN install-php-extensions mongodb zip
|
|
|
|
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"] |