version: '3' services: # API api: build: . volumes: - './backend/:/var/www/html' command: bash -c "npm install && npm run start:debug" ports: - 3000:3000 - 9229:9229 restart: unless-stopped depends_on: - 'database' networks: - app # FRONTEND frontend: image: node:16-alpine working_dir: /var/www/html command: npm run serve ports: - 8080:8080 restart: unless-stopped volumes: - './frontend/:/var/www/html' networks: - app # DATABASE database: container_name: pg_container image: postgres restart: unless-stopped environment: POSTGRES_USER: '${DB_USERNAME}' POSTGRES_PASSWORD: '${DB_PASSWORD}' POSTGRES_DB: '${DB_DATABASE}' PGDATA: /var/lib/postgresql/data volumes: - postgres-data:/var/lib/postgresql/data ports: - '${DB_PORT}:5432' networks: - app # Redis redis: image: redis:latest ports: - '6379:6379' networks: - app # rcli: # image: redis:latest # links: # - redis # command: redis-cli -h redis # Postgres admin pgadmin: container_name: pgadmin4_container image: dpage/pgadmin4 restart: unless-stopped environment: PGADMIN_DEFAULT_EMAIL: admin@admin.com PGADMIN_DEFAULT_PASSWORD: root ports: - '5050:80' networks: - app # MAILHOG mailhog_app: container_name: mailhog_app image: mailhog/mailhog logging: driver: 'none' ports: - 1025:1025 - 8025:8025 networks: - app # NETWORKS networks: app: driver: bridge # VOLUMES volumes: postgres-data: driver: local