release/v0.4.1 #66

Merged
myrmidex merged 4 commits from release/v0.4.1 into main 2026-08-16 13:26:23 +02:00
2 changed files with 19 additions and 12 deletions
Showing only changes of commit 8d124e42cd - Show all commits

View file

@ -39,6 +39,11 @@ jobs:
with: with:
context: . context: .
file: docker/production/Dockerfile file: docker/production/Dockerfile
# arm64 is deliberate: nothing of ours deploys to it, but the image is
# published for self-hosters and dropping it would exclude ARM boxes.
# It is emulated via QEMU, so keep the Dockerfile free of compilation.
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: ${{ steps.meta.outputs.tags }} tags: ${{ steps.meta.outputs.tags }}
cache-from: type=registry,ref=forge.lvl0.xyz/lvl0/incr:buildcache
cache-to: type=registry,ref=forge.lvl0.xyz/lvl0/incr:buildcache,mode=max

View file

@ -20,39 +20,41 @@ RUN npm run build
# PHP runtime stage # PHP runtime stage
FROM php:8.3-fpm-alpine FROM php:8.3-fpm-alpine
# Install system dependencies # mysql-client backs the database readiness loop in start-app.sh.
RUN apk add --no-cache \ RUN apk add --no-cache \
git \
curl \ curl \
libpng-dev \
libxml2-dev \
zip \ zip \
unzip \ unzip \
oniguruma-dev \
mysql-client \ mysql-client \
nginx \ nginx \
supervisor supervisor
# Install PHP extensions # Prebuilt binaries rather than docker-php-ext-install: compiling these under
RUN docker-php-ext-install \ # QEMU for the arm64 image dominated the build time.
COPY --from=mlocati/php-extension-installer:2 /usr/bin/install-php-extensions /usr/local/bin/
RUN install-php-extensions \
pdo_mysql \ pdo_mysql \
mbstring \ mbstring \
exif \
pcntl \ pcntl \
bcmath \ bcmath \
gd gd
# Install Composer # Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
# Set working directory # Set working directory
WORKDIR /var/www/html WORKDIR /var/www/html
# Copy application code first # Dependencies before the source, so a code change does not reinstall vendor.
# --no-scripts because package discovery needs the full application.
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader --no-interaction --no-scripts
COPY . . COPY . .
# Install PHP dependencies after copying all files # dump-autoload triggers post-autoload-dump, which runs package:discover.
RUN composer install --no-dev --optimize-autoloader --no-interaction RUN composer dump-autoload --optimize --no-interaction
# Copy built frontend assets from builder stage # Copy built frontend assets from builder stage
COPY --from=frontend-builder /app/public/build/ ./public/build/ COPY --from=frontend-builder /app/public/build/ ./public/build/