OpenVPN
Graylog
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