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