pp-planer/docker-compose.yml
Thorsten Bus 6c7c6c076d fix: Docker FPM on port 9000, proper healthcheck, runtime dep install
- Slim Dockerfile to env-only (deps install at container start via volume mount)
- Add FastCGI ping healthcheck instead of broken HTTP curl
- App startup: composer install + migrate + php-fpm
- Remove obsolete docker-compose version key
2026-03-30 17:29:32 +02:00

78 lines
2 KiB
YAML

services:
app:
build:
context: .
dockerfile: build/Dockerfile
container_name: pp-planer-app
restart: unless-stopped
working_dir: /app
command: >-
sh -c "composer install --no-interaction
&& mkdir -p storage/logs storage/framework/views storage/framework/cache
&& chmod -R 775 storage bootstrap/cache
&& php artisan migrate --force
&& php-fpm"
environment:
- APP_ENV=${APP_ENV}
- APP_DEBUG=${APP_DEBUG}
- APP_KEY=${APP_KEY}
- APP_URL=${APP_URL}
- DB_CONNECTION=${DB_CONNECTION}
- CTS_API_URL=${CTS_API_URL}
- CTS_API_TOKEN=${CTS_API_TOKEN}
- CHURCHTOOLS_URL=${CHURCHTOOLS_URL}
- CHURCHTOOLS_CLIENT_ID=${CHURCHTOOLS_CLIENT_ID}
- CHURCHTOOLS_CLIENT_SECRET=${CHURCHTOOLS_CLIENT_SECRET}
- CHURCHTOOLS_REDIRECT_URI=${CHURCHTOOLS_REDIRECT_URI}
volumes:
- ./:/app
- /app/node_modules
- /app/vendor
ports:
- "9000:9000"
networks:
- pp-planer-network
depends_on:
- node
node:
image: node:20-alpine
container_name: pp-planer-node
restart: unless-stopped
working_dir: /app
environment:
- NODE_ENV=development
volumes:
- ./:/app
- /app/node_modules
ports:
- "5173:5173"
networks:
- pp-planer-network
command: sh -c "npm install && npm run dev"
# Optional: SQLite database service (for reference, SQLite runs in-process)
# For MySQL, uncomment and configure:
# mysql:
# image: mysql:8.0
# container_name: pp-planer-mysql
# restart: unless-stopped
# environment:
# MYSQL_DATABASE: ${DB_DATABASE}
# MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
# MYSQL_PASSWORD: ${DB_PASSWORD}
# MYSQL_USER: ${DB_USERNAME}
# volumes:
# - mysql_data:/var/lib/mysql
# ports:
# - "3306:3306"
# networks:
# - pp-planer-network
networks:
pp-planer-network:
driver: bridge
# volumes:
# mysql_data:
# driver: local