version: '3.8' services: app: build: context: . dockerfile: Dockerfile container_name: cts-presenter-app restart: unless-stopped working_dir: /app 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: - "8000:8000" networks: - cts-network depends_on: - node node: image: node:20-alpine container_name: cts-presenter-node restart: unless-stopped working_dir: /app environment: - NODE_ENV=development volumes: - ./:/app - /app/node_modules ports: - "5173:5173" networks: - cts-network command: 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: cts-presenter-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: # - cts-network networks: cts-network: driver: bridge # volumes: # mysql_data: # driver: local