Split gateway control and dataplane into separate services
This commit is contained in:
@@ -1,14 +1,18 @@
|
||||
x-gateway-image: &gateway-image
|
||||
image: ${GATEWAY_IMAGE:-vpn-proxy-gateway:local}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
BASE_IMAGE: ${BASE_IMAGE:-debian:bookworm-slim}
|
||||
SINGBOX_VERSION: ${SINGBOX_VERSION:-1.12.13}
|
||||
INSTALL_RUNTIME_DEPS: ${INSTALL_RUNTIME_DEPS:-true}
|
||||
INSTALL_SINGBOX: ${INSTALL_SINGBOX:-true}
|
||||
|
||||
services:
|
||||
vpn-proxy-gateway:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
BASE_IMAGE: ${BASE_IMAGE:-debian:bookworm-slim}
|
||||
SINGBOX_VERSION: ${SINGBOX_VERSION:-1.12.13}
|
||||
INSTALL_RUNTIME_DEPS: ${INSTALL_RUNTIME_DEPS:-true}
|
||||
INSTALL_SINGBOX: ${INSTALL_SINGBOX:-true}
|
||||
container_name: vpn-proxy-gateway
|
||||
vpn-proxy-dataplane:
|
||||
<<: *gateway-image
|
||||
container_name: vpn-proxy-dataplane
|
||||
network_mode: host
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
@@ -17,11 +21,43 @@ services:
|
||||
- path: .env
|
||||
required: false
|
||||
environment:
|
||||
APP_COMPONENT: dataplane
|
||||
DATA_DIR: /var/lib/vpn-proxy
|
||||
SING_BOX_CONFIG: /var/lib/vpn-proxy/sing-box-config.json
|
||||
SING_BOX_CACHE: /var/lib/sing-box/cache.db
|
||||
DATAPLANE_SOCKET: /run/vpn-proxy/dataplane.sock
|
||||
volumes:
|
||||
- vpn-proxy-data:/var/lib/vpn-proxy
|
||||
- sing-box-cache:/var/lib/sing-box
|
||||
- vpn-proxy-runtime:/run/vpn-proxy
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "--unix-socket", "/run/vpn-proxy/dataplane.sock", "-fsS", "http://localhost/status"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 12
|
||||
start_period: 5s
|
||||
|
||||
vpn-proxy-control:
|
||||
<<: *gateway-image
|
||||
container_name: vpn-proxy-gateway
|
||||
env_file:
|
||||
- path: .env
|
||||
required: false
|
||||
environment:
|
||||
APP_COMPONENT: control
|
||||
DATA_DIR: /var/lib/vpn-proxy
|
||||
SING_BOX_CONFIG: /var/lib/vpn-proxy/sing-box-config.json
|
||||
SING_BOX_CACHE: /var/lib/sing-box/cache.db
|
||||
DATAPLANE_SOCKET: /run/vpn-proxy/dataplane.sock
|
||||
ports:
|
||||
- "${PORT:-3456}:${PORT:-3456}"
|
||||
volumes:
|
||||
- vpn-proxy-data:/var/lib/vpn-proxy
|
||||
- vpn-proxy-runtime:/run/vpn-proxy
|
||||
depends_on:
|
||||
vpn-proxy-dataplane:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-fsS", "http://127.0.0.1:${PORT:-3456}/api/state"]
|
||||
@@ -33,3 +69,4 @@ services:
|
||||
volumes:
|
||||
vpn-proxy-data:
|
||||
sing-box-cache:
|
||||
vpn-proxy-runtime:
|
||||
|
||||
Reference in New Issue
Block a user