[[wiki:docker-compose-openvpn|OpenVPN]]\\ [[wiki:docker-compose-graylog|Graylog]]\\ [[wiki:docker-compose-unifi|Unifi Controller]]\\ **Header** services: node: container_name: node-server **Image ** image: node:20-alpine build: context: . dockerfile: Dockerfile **Environment** env_file: - .env environment: LOGIN: user PASSWORD: secret **Volumes** volumes: - ./app:/app - ./build/file.conf:/file.conf:ro **Ports** ports: - 8080:80 - 8443:443 **Limits** mem_limit: "1g" mem_reservation: "512m" cpus: "2" cpuset: "0,2" ulimits: memlock: soft: -1 hard: -1 **Command** command: sh -c "npm install && npm run start" **Restart** restart: unless-stopped restart: on-failure **Logs** logging: driver: "json-file" options: max-size: "1024m" max-file: "3" logging: driver: journald logging: driver: gelf options: gelf-address: "udp://logstash-host:12201" tag: "node-server" **Healthcheck** healthcheck: test: curl --fail http://localhost || exit 1 interval: 60s retries: 5 start_period: 20s timeout: 10s **Networks** networks: net-dhcp: networks: net-static: ipv4_address: 10.5.0.8 **DNS** extra_hosts: - "server:10.0.0.1" **Dependency** depends_on: name: condition: service_healthy **Networks** networks: net-dhcp: driver: bridge ipam: driver: default networks: net-static: driver: bridge ipam: driver: default config: - subnet: 10.9.8.0/24 gateway: 10.9.8.1 networks: net-external: external: true **Volumes** volumes: volume: volumes: volume: external: true