c68dddfc01
新增 ONLYOFFICE 配置签名、内部内容接口、容器编排与反向代理。 打通网页端和桌面端独立预览工作区,完善文档入口、布局及帮助体验。 补充桌面安全发布门禁、开发脚本、使用文档和前后端测试。
92 lines
2.4 KiB
YAML
92 lines
2.4 KiB
YAML
services:
|
|
db:
|
|
extends:
|
|
file: docker-compose.yaml
|
|
service: db
|
|
|
|
backend:
|
|
extends:
|
|
file: docker-compose.yaml
|
|
service: backend
|
|
|
|
backend-init:
|
|
extends:
|
|
file: docker-compose.yaml
|
|
service: backend-init
|
|
|
|
onlyoffice:
|
|
extends:
|
|
file: docker-compose.yaml
|
|
service: onlyoffice
|
|
|
|
frontend-dev:
|
|
image: node:22.13-alpine
|
|
container_name: ctms_frontend_dev
|
|
restart: always
|
|
working_dir: /app
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
set -e
|
|
lock_hash="$$(sha256sum package-lock.json | awk '{print $$1}')"
|
|
dependency_hash="$$lock_hash:$$(node --version)"
|
|
marker="node_modules/.ctms-package-lock.sha256"
|
|
missing_runtime_deps=0
|
|
for dep in @tauri-apps/api @tauri-apps/plugin-dialog @tauri-apps/plugin-fs @tauri-apps/plugin-opener pdfjs-dist; do
|
|
if [ ! -d "node_modules/$$dep" ]; then
|
|
missing_runtime_deps=1
|
|
fi
|
|
done
|
|
if [ ! -f "$$marker" ] || [ "$$(cat "$$marker")" != "$$dependency_hash" ] || [ "$$missing_runtime_deps" = "1" ]; then
|
|
npm ci
|
|
printf '%s' "$$dependency_hash" > "$$marker"
|
|
fi
|
|
npm run dev -- --host 0.0.0.0
|
|
environment:
|
|
NPM_CONFIG_REGISTRY: ${NPM_CONFIG_REGISTRY:-https://registry.npmmirror.com}
|
|
VITE_RUNTIME_ENV: ${ENV:-development}
|
|
VITE_ALLOW_INSECURE_DEV_LOGIN: ${VITE_ALLOW_INSECURE_DEV_LOGIN:-true}
|
|
VITE_HMR_CLIENT_PORT: ${VITE_HMR_CLIENT_PORT:-8888}
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:5173/"]
|
|
interval: 2s
|
|
timeout: 2s
|
|
retries: 90
|
|
start_period: 5s
|
|
volumes:
|
|
- ./frontend:/app
|
|
- frontend_node_modules_node22:/app/node_modules
|
|
depends_on:
|
|
- backend
|
|
networks:
|
|
- ctms_net
|
|
|
|
nginx:
|
|
image: nginx:1.27-alpine
|
|
container_name: ctms_nginx
|
|
restart: always
|
|
ports:
|
|
- "8888:80"
|
|
volumes:
|
|
- ./nginx/nginx.dev.conf:/etc/nginx/nginx.conf:ro
|
|
- ./nginx/certs:/etc/nginx/certs:ro
|
|
- ./frontend/public/favicon.ico:/usr/share/nginx/html/favicon.ico:ro
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
frontend-dev:
|
|
condition: service_healthy
|
|
networks:
|
|
- ctms_net
|
|
|
|
volumes:
|
|
frontend_node_modules_node22:
|
|
onlyoffice_data:
|
|
onlyoffice_lib:
|
|
onlyoffice_logs:
|
|
|
|
networks:
|
|
ctms_net:
|
|
driver: bridge
|