PHP-FPM, queues and scheduled tasks on a VM that never sleeps — the parts shared hosting makes awkward. Built for Ampere A1 (arm64), listens on port 9000, and starts with php-fpm.
FROM php:8.3-fpm-alpine
WORKDIR /var/www
RUN apk add --no-cache nginx supervisor libpng-dev icu-dev \
&& docker-php-ext-install pdo_mysql opcache intl gd
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --optimize-autoloader
COPY . .
RUN php artisan config:cache && php artisan route:cache && php artisan view:cache
EXPOSE 9000
CMD ["php-fpm"]The official PHP images are multi-arch. OPcache plus config/route caching on an Ampere core gives response times most shared hosts cannot match.
Cheaploy builds this image on your own Oracle Always Free VM, opens the ports, issues HTTPS and rolls back if health checks fail.