version: '3.8' services: app: build: . image: myapp:latest container_name: myapp restart: unless-stopped expose: - "3000" environment: - NODE_ENV=production - VIRTUAL_HOST=myapp.example.com - VIRTUAL_PORT=3000 - LETSENCRYPT_HOST=myapp.example.com - LETSENCRYPT_EMAIL=admin@example.com volumes: - ./data:/app/data networks: - nginx-proxy - internal labels: - "buque.environment=myapp" - "buque.managed=true" database: image: postgres:15-alpine container_name: myapp-db restart: unless-stopped environment: - POSTGRES_DB=myapp - POSTGRES_USER=myapp - POSTGRES_PASSWORD=changeme volumes: - db-data:/var/lib/postgresql/data networks: - internal labels: - "buque.environment=myapp" - "buque.managed=true" redis: image: redis:7-alpine container_name: myapp-redis restart: unless-stopped networks: - internal labels: - "buque.environment=myapp" - "buque.managed=true" networks: nginx-proxy: external: true internal: driver: bridge volumes: db-data: