services: safeline-mgt: container_name: ${CONTAINER_NAME}-mgt restart: always networks: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.4 image: chaitin/safeline-mgt:7.3.1 volumes: - /etc/localtime:/etc/localtime:ro - ${SAFELINE_DIR}/resources/mgt:/app/data - ${SAFELINE_DIR}/logs/nginx:/app/log/nginx:z - ${SAFELINE_DIR}/resources/sock:/app/sock - /var/run:/app/run ports: - ${PANEL_APP_PORT_HTTP:-9443}:1443 healthcheck: test: curl -k -f https://localhost:1443/api/open/health environment: - MGT_PG=postgres://safeline-ce:${POSTGRES_PASSWORD}@safeline-pg/safeline-ce?sslmode=disable logging: options: max-size: "100m" max-file: "5" depends_on: - safeline-pg - safeline-fvm labels: createdBy: Apps safeline-detector: container_name: ${CONTAINER_NAME}-detector restart: always networks: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.5 image: chaitin/safeline-detector:7.3.1 volumes: - ${SAFELINE_DIR}/resources/detector:/resources/detector - ${SAFELINE_DIR}/logs/detector:/logs/detector - /etc/localtime:/etc/localtime:ro environment: - LOG_DIR=/logs/detector labels: createdBy: Apps safeline-tengine: container_name: ${CONTAINER_NAME}-tengine restart: always image: chaitin/safeline-tengine:7.3.1 volumes: - /etc/localtime:/etc/localtime:ro - /etc/resolv.conf:/etc/resolv.conf:ro - ${SAFELINE_DIR}/resources/nginx:/etc/nginx - ${SAFELINE_DIR}/resources/detector:/resources/detector - ${SAFELINE_DIR}/resources/chaos:/resources/chaos - ${SAFELINE_DIR}/logs/nginx:/var/log/nginx:z - ${SAFELINE_DIR}/resources/cache:/usr/local/nginx/cache - ${SAFELINE_DIR}/resources/sock:/app/sock environment: - TCD_MGT_API=https://${SUBNET_PREFIX}.4:1443/api/open/publish/server - SNSERVER_ADDR=${SUBNET_PREFIX}.5:8000 ulimits: nofile: 131072 network_mode: host labels: createdBy: Apps safeline-luigi: container_name: ${CONTAINER_NAME}-luigi restart: always networks: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.7 image: chaitin/safeline-luigi:7.3.1 volumes: - /etc/localtime:/etc/localtime:ro - ${SAFELINE_DIR}/resources/luigi:/app/data - ${SAFELINE_DIR}/logs/nginx:/app/log/nginx:z environment: - MGT_IP=${SUBNET_PREFIX}.4 logging: options: max-size: "100m" max-file: "5" depends_on: - safeline-detector - safeline-mgt labels: createdBy: Apps safeline-fvm: container_name: ${CONTAINER_NAME}-fvm restart: always networks: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.8 image: chaitin/safeline-fvm:7.3.1 volumes: - /etc/localtime:/etc/localtime:ro logging: options: max-size: "100m" max-file: "5" labels: createdBy: Apps safeline-pg: container_name: ${CONTAINER_NAME}-pg restart: always networks: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.2 image: postgres:15.13 volumes: - ${SAFELINE_DIR}/resources/postgres/data:/var/lib/postgresql/data - /etc/localtime:/etc/localtime:ro environment: - POSTGRES_USER=safeline-ce - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} command: [postgres, -c, max_connections=600] healthcheck: test: pg_isready -U safeline-ce -d safeline-ce labels: createdBy: Apps safeline-chaos: container_name: ${CONTAINER_NAME}-chaos restart: always networks: 1panel-network: safeline-ce: ipv4_address: ${SUBNET_PREFIX}.10 image: chaitin/safeline-chaos:7.3.1 logging: options: max-size: "100m" max-file: "5" volumes: - ${SAFELINE_DIR}/resources/sock:/app/sock - ${SAFELINE_DIR}/resources/chaos:/app/chaos labels: createdBy: Apps networks: 1panel-network: external: true safeline-ce: name: safeline-ce driver: bridge ipam: driver: default config: - gateway: ${SUBNET_PREFIX:?SUBNET_PREFIX required}.1 subnet: ${SUBNET_PREFIX}.0/24 driver_opts: com.docker.network.bridge.name: safeline-ce