# Reactive Resume 通用服务器纯净模板。 # 使用前请先复制 .env.example 为 .env,并填写域名、端口、数据库密码和密钥。 name: reactive-resume services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data networks: - resume_net healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 10 reactive-resume: image: amruthpillai/reactive-resume@sha256:b760446c4301af067e7d595537a877e378363aa6ce921b7349e62983621826aa restart: unless-stopped env_file: - .env ports: # 待填写:LOCAL_BIND_IP / LOCAL_APP_PORT 在 .env 中配置。 # 例:127.0.0.1:3004:3000,仅允许本机反代或 frpc 访问。 - "${LOCAL_BIND_IP}:${LOCAL_APP_PORT}:3000" volumes: - reactive_resume_data:/app/data networks: - resume_net depends_on: postgres: condition: service_healthy healthcheck: test: [ "CMD", "node", "-e", "fetch('http://127.0.0.1:3000/api/health').then((r) => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1));", ] interval: 30s timeout: 10s retries: 5 start_period: 30s frpc: image: fatedier/frpc:v0.68.0 restart: unless-stopped command: ["-c", "/etc/frp/frpc.yaml"] volumes: # 待填写:frpc.yaml 中配置 FRP 服务器、token、remotePort。 - ./frpc.yaml:/etc/frp/frpc.yaml:ro networks: - resume_net depends_on: reactive-resume: condition: service_healthy networks: resume_net: driver: bridge volumes: postgres_data: reactive_resume_data: