-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathdocker-entrypoint.sh
More file actions
97 lines (76 loc) · 2.71 KB
/
docker-entrypoint.sh
File metadata and controls
97 lines (76 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/sh
# 设置全局 umask
umask 000
# 确保 nginx 用 root 用户运行
echo "Configuring nginx to run as root..."
sed -i 's/^user .*$/user root;/' /etc/nginx/nginx.conf
echo "Nginx user configuration:"
cat /etc/nginx/nginx.conf | grep "^user"
echo "Starting services..."
# 确保目录存在
mkdir -p /app/backend/data
mkdir -p /app/backend/custom/helper # 先创建父目录
mkdir -p /app/backend/backups # 创建备份目录
# 创建 custom 目录结构
echo "Creating custom directory structure..."
cd /app/backend/custom/helper && \
mkdir -p font && \
mkdir -p freewidgets/setting && \
mkdir -p logo && \
mkdir -p maxkb && \
mkdir -p md/anonymous && # 预创建匿名用户目录
mkdir -p mouse && \
mkdir -p weather-widget
# 初始化匿名用户的笔记文件
echo "[]" > /app/backend/custom/helper/md/anonymous/notes.json
# 确保文件存在
echo "Creating custom files..."
touch /app/backend/custom/index.css
touch /app/backend/custom/index.js
# 设置权限
echo "Setting permissions..."
chmod -R 777 /app/backend/data
chmod -R 777 /app/backend/custom
chmod -R 777 /app/backend/backups # 设置备份目录权限
# 复制资源文件
echo "Copying resource files..."
cp /app/resources/maxkb/logo.gif /app/backend/custom/helper/maxkb/
cp /app/resources/font/江湖风古体.ttf /app/backend/custom/helper/font/
cp /app/resources/font/马赛克MC风.ttf /app/backend/custom/helper/font/
cp /app/resources/font/猫啃圆珠体.ttf /app/backend/custom/helper/font/
# 再次确保所有权限
chmod -R 777 /app/backend/custom
chmod -R 777 /app/backend/data
# 启动后端服务
echo "Starting backend service..."
cd /app/backend
# 确保 node 进程继承正确的 umask
sh -c 'umask 000 && PORT=${BACKEND_PORT:-3001} node src/app.js' &
BACKEND_PID=$!
# 等待后端启动
echo "Waiting for backend to start..."
sleep 5
# 检查后端是否正常运行
if ! kill -0 $BACKEND_PID 2>/dev/null; then
echo "ERROR: Backend failed to start!"
exit 1
fi
echo "Backend started successfully on port ${BACKEND_PORT:-3001}"
# 检查 nginx 配置
echo "Checking nginx configuration..."
# 设置环境变量默认值
export BACKEND_PORT=${BACKEND_PORT:-3001}
export FRONTEND_PORT=${FRONTEND_PORT:-80}
# 替换nginx配置中的变量
echo "Replacing environment variables in nginx config..."
echo "- Backend port: ${BACKEND_PORT}"
echo "- Frontend port: ${FRONTEND_PORT}"
# 修改listen指令的端口
sed -i "s/listen 80;/listen ${FRONTEND_PORT};/g" /etc/nginx/conf.d/default.conf
# 替换后端端口变量
sed -i "s/\${BACKEND_PORT}/${BACKEND_PORT}/g" /etc/nginx/conf.d/default.conf
# 检查nginx配置是否有效
nginx -t
# 启动 nginx
echo "Starting nginx on port ${FRONTEND_PORT}..."
nginx -g 'daemon off;' -c /etc/nginx/nginx.conf