50 lines
1.5 KiB
YAML
50 lines
1.5 KiB
YAML
version: "3.8"
|
||
|
||
services:
|
||
tuwen_system:
|
||
# 使用官方 Node 镜像,无需 Dockerfile 构建
|
||
image: node:20-alpine
|
||
container_name: tuwen_system
|
||
|
||
# 将 NAS 上的源码目录挂载到容器内
|
||
volumes:
|
||
- /share/Container/tuwen_system:/app
|
||
working_dir: /app
|
||
|
||
# 端口映射:NAS 4002 端口 -> 容器 3000 端口
|
||
# (因为 package.json 中 dev 脚本固定为 --port=3000)
|
||
ports:
|
||
- "4002:3000"
|
||
|
||
restart: unless-stopped
|
||
tty: true
|
||
stdin_open: true
|
||
|
||
# 启动命令:先检查 node_modules 是否存在,避免每次重启都重新安装
|
||
# 然后运行开发服务(package.json 中已带 --host=0.0.0.0)
|
||
command: >
|
||
sh -c "
|
||
if [ ! -d node_modules ]; then
|
||
echo 'Installing dependencies...' &&
|
||
npm install;
|
||
else
|
||
echo 'Dependencies already installed, skipping npm install...';
|
||
fi &&
|
||
echo 'Fixing binary permissions...' &&
|
||
chmod -R +x node_modules/.bin/ 2>/dev/null || true &&
|
||
echo 'Starting dev server...' &&
|
||
npm run dev
|
||
"
|
||
|
||
environment:
|
||
# 应用访问地址(用于系统内跳转链接等场景)
|
||
- APP_URL=http://192.168.31.5:4002
|
||
|
||
# 网络代理配置(国内环境下加速 npm install)
|
||
# 如果不需要代理,可将下面 5 行注释掉
|
||
- HTTP_PROXY=http://192.168.31.7:7893
|
||
- HTTPS_PROXY=http://192.168.31.7:7893
|
||
- http_proxy=http://192.168.31.7:7893
|
||
- https_proxy=http://192.168.31.7:7893
|
||
- NO_PROXY=localhost,127.0.0.1,192.168.31.0/24
|