Upload 4 files
Browse files- entrypoint.sh +36 -25
- supervisord.conf +1 -0
entrypoint.sh
CHANGED
|
@@ -1,12 +1,30 @@
|
|
| 1 |
#!/bin/bash
|
| 2 |
set -e
|
| 3 |
|
| 4 |
-
#
|
|
|
|
| 5 |
PHP_WWW_DIR="/home/www"
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
if [ ! -f "$PHP_WWW_DIR/ftp.php" ]; then
|
| 11 |
echo "Initializing default PHP website files..."
|
| 12 |
mkdir -p "$PHP_WWW_DIR"
|
|
@@ -14,29 +32,22 @@ if [ ! -f "$PHP_WWW_DIR/ftp.php" ]; then
|
|
| 14 |
chmod -R 755 "$PHP_WWW_DIR"
|
| 15 |
fi
|
| 16 |
|
| 17 |
-
#
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
if [ ! -d "$
|
| 23 |
-
|
|
|
|
| 24 |
fi
|
| 25 |
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
echo "
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
# 只有在持久化目录中没有数据时才从镜像备份中复制
|
| 32 |
-
if [ ! -d "$PERSISTENT_DATA_DIR/opencode/.opencode" ]; then
|
| 33 |
-
cp -r /app/defaults/opencode/.opencode "$PERSISTENT_DATA_DIR/opencode/"
|
| 34 |
-
fi
|
| 35 |
-
|
| 36 |
-
rm -rf "$OPL_CONFIG_DIR"
|
| 37 |
-
ln -s "$PERSISTENT_DATA_DIR/opencode/.opencode" "$OPL_CONFIG_DIR"
|
| 38 |
fi
|
| 39 |
|
| 40 |
-
|
| 41 |
-
echo "Starting supervisor..."
|
| 42 |
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
|
|
|
|
| 1 |
#!/bin/bash
|
| 2 |
set -e
|
| 3 |
|
| 4 |
+
# --- 路径定义 ---
|
| 5 |
+
# PHP 网站持久化路径
|
| 6 |
PHP_WWW_DIR="/home/www"
|
| 7 |
+
# OpenCode 实际存储路径 (用户要求)
|
| 8 |
+
OP_DATA_DIR="/home/www/opencode"
|
| 9 |
+
# OpenCode 程序寻找配置的硬编码路径
|
| 10 |
+
OP_CONFIG_DIR="/root/.opencode"
|
| 11 |
+
# 镜像内的备份路径
|
| 12 |
+
OP_BACKUP_DIR="/app/defaults/opencode"
|
| 13 |
|
| 14 |
+
echo "--- Starting Runtime Initialization ---"
|
| 15 |
+
|
| 16 |
+
# 1. 修复 PHP-FPM 运行环境 (解决 Exit Status 78)
|
| 17 |
+
echo "Fixing PHP-FPM runtime directory..."
|
| 18 |
+
mkdir -p /run/php
|
| 19 |
+
chmod 755 /run/php
|
| 20 |
+
|
| 21 |
+
# 2. 修复 Nginx 运行环境 (解决 Exit Status 1)
|
| 22 |
+
echo "Fixing Nginx runtime environment..."
|
| 23 |
+
mkdir -p /var/cache/nginx
|
| 24 |
+
# 必须将配置从 available 链接到 enabled 才能生效
|
| 25 |
+
ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
|
| 26 |
+
|
| 27 |
+
# 3. 初始化 PHP 网站文件 (如果持久化目录为空)
|
| 28 |
if [ ! -f "$PHP_WWW_DIR/ftp.php" ]; then
|
| 29 |
echo "Initializing default PHP website files..."
|
| 30 |
mkdir -p "$PHP_WWW_DIR"
|
|
|
|
| 32 |
chmod -R 755 "$PHP_WWW_DIR"
|
| 33 |
fi
|
| 34 |
|
| 35 |
+
# 4. 处理 OpenCode 持久化 (迁移至 /home/www/opencode)
|
| 36 |
+
echo "Setting up OpenCode persistence at $OP_DATA_DIR..."
|
| 37 |
+
mkdir -p "$OP_DATA_DIR"
|
| 38 |
+
|
| 39 |
+
# 如果持久化目录是空的,则从镜像备份中恢复安装内容
|
| 40 |
+
if [ ! -d "$OP_DATA_DIR/.opencode" ]; then
|
| 41 |
+
echo "Restoring OpenCode installation from backup..."
|
| 42 |
+
cp -r "$OP_BACKUP_DIR/.opencode" "$OP_DATA_DIR/"
|
| 43 |
fi
|
| 44 |
|
| 45 |
+
# 关键步骤:将程序寻找的路径软链接到持久化路径
|
| 46 |
+
if [ ! -L "$OP_CONFIG_DIR" ]; then
|
| 47 |
+
echo "Creating symlink: $OP_CONFIG_DIR -> $OP_DATA_DIR/.opencode"
|
| 48 |
+
rm -rf "$OP_CONFIG_DIR"
|
| 49 |
+
ln -s "$OP_DATA_DIR/.opencode" "$OP_CONFIG_DIR"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
fi
|
| 51 |
|
| 52 |
+
echo "--- Initialization Complete. Starting Supervisor ---"
|
|
|
|
| 53 |
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
|
supervisord.conf
CHANGED
|
@@ -19,6 +19,7 @@ stderr_logfile=/var/log/supervisor/nginx.err.log
|
|
| 19 |
stdout_logfile=/var/log/supervisor/nginx.out.log
|
| 20 |
|
| 21 |
[program:opencode-web]
|
|
|
|
| 22 |
command=/bin/bash -c "export PATH='/root/.opencode/bin:\$PATH' && /root/.opencode/bin/opencode web --hostname 0.0.0.0 --port 8080"
|
| 23 |
autostart=true
|
| 24 |
autorestart=true
|
|
|
|
| 19 |
stdout_logfile=/var/log/supervisor/nginx.out.log
|
| 20 |
|
| 21 |
[program:opencode-web]
|
| 22 |
+
# 确保使用已解析的软链接路径运行
|
| 23 |
command=/bin/bash -c "export PATH='/root/.opencode/bin:\$PATH' && /root/.opencode/bin/opencode web --hostname 0.0.0.0 --port 8080"
|
| 24 |
autostart=true
|
| 25 |
autorestart=true
|