04280c578c
App (PHP-FPM) container never got public/build/manifest.json, only the nginx container built it — blade's @vite runs server-side in PHP and threw "Vite manifest not found", causing 500 on every page. Also: - strip docker/ (incl. DB dump) from the shipped app image - pin npm installs to package-lock.json via npm ci in both build stages - fix .dockerignore case typo (Docker/Dockerfile -> docker/Dockerfile) - pass AWS_* env vars to app service, required since FILESYSTEM_DISK=s3 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
64 lines
1.5 KiB
YAML
64 lines
1.5 KiB
YAML
services:
|
|
# ==========================================
|
|
# 1. Laravel Application (PHP-FPM)
|
|
# ==========================================
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/Dockerfile
|
|
restart: unless-stopped
|
|
environment:
|
|
APP_NAME: ${APP_NAME:-Laravel}
|
|
APP_ENV: ${APP_ENV:-production}
|
|
APP_KEY: ${APP_KEY}
|
|
APP_DEBUG: ${APP_DEBUG:-false}
|
|
APP_URL: ${APP_URL}
|
|
|
|
DB_CONNECTION: mariadb
|
|
DB_HOST: db
|
|
DB_PORT: 3306
|
|
|
|
DB_DATABASE: ${DB_DATABASE}
|
|
DB_USERNAME: ${DB_USERNAME}
|
|
DB_PASSWORD: ${DB_PASSWORD}
|
|
|
|
FILESYSTEM_DISK: s3
|
|
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
|
|
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
|
|
AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION:-us-east-1}
|
|
AWS_BUCKET: ${AWS_BUCKET}
|
|
depends_on:
|
|
- db
|
|
|
|
# ==========================================
|
|
# 2. Web Server (Custom Nginx)
|
|
# ==========================================
|
|
web:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/nginx.Dockerfile
|
|
restart: unless-stopped
|
|
expose:
|
|
- "80"
|
|
depends_on:
|
|
- app
|
|
|
|
# ==========================================
|
|
# 3. Database (MariaDB)
|
|
# ==========================================
|
|
db:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/mariadb.Dockerfile
|
|
restart: unless-stopped
|
|
environment:
|
|
MYSQL_DATABASE: ${DB_DATABASE}
|
|
MYSQL_USER: ${DB_USERNAME}
|
|
MYSQL_PASSWORD: ${DB_PASSWORD}
|
|
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
|
|
volumes:
|
|
- db_data:/var/lib/mysql
|
|
|
|
volumes:
|
|
db_data:
|