[[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