build:为 Docker 部署添加 entrypoint 脚本
- 新增 entrypoint.sh脚本,用于在容器启动时执行初始化操作 - 修改 Dockerfile,使用 entrypoint.sh 作为入口点 - 脚本功能包括: - 创建配置目录 - 复制 bot配置文件 - 复制环境配置文件
This commit is contained in:
@@ -17,4 +17,8 @@ RUN pip install --upgrade -r requirements.txt
|
|||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
ENTRYPOINT [ "python","bot.py" ]
|
|
||||||
|
RUN chmod +x /MaiMBot/entrypoint.sh
|
||||||
|
ENTRYPOINT ["/MaiMBot/entrypoint.sh"]
|
||||||
|
|
||||||
|
CMD [ "python","bot.py" ]
|
||||||
55
entrypoint.sh
Normal file
55
entrypoint.sh
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e # 遇到任何错误立即退出
|
||||||
|
|
||||||
|
# 定义常量
|
||||||
|
TEMPLATE_DIR="./template"
|
||||||
|
CONFIG_DIR="./config"
|
||||||
|
TARGET_ENV_FILE="./.env"
|
||||||
|
|
||||||
|
# 步骤 1: 创建 config 目录
|
||||||
|
if [ ! -d "$CONFIG_DIR" ]; then
|
||||||
|
echo "🛠️ 创建配置目录: $CONFIG_DIR"
|
||||||
|
mkdir -p "$CONFIG_DIR"
|
||||||
|
chmod 755 "$CONFIG_DIR" # 设置目录权限(按需修改)
|
||||||
|
else
|
||||||
|
echo "ℹ️ 配置目录已存在,跳过创建: $CONFIG_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 步骤 2: 复制 bot 配置文件
|
||||||
|
BOT_TEMPLATE="$TEMPLATE_DIR/bot_config_template.toml"
|
||||||
|
BOT_CONFIG="$CONFIG_DIR/bot_config.toml"
|
||||||
|
|
||||||
|
if [ -f "$BOT_TEMPLATE" ]; then
|
||||||
|
if [ ! -f "$BOT_CONFIG" ]; then
|
||||||
|
echo "📄 生成 Bot 配置文件: $BOT_CONFIG"
|
||||||
|
cp "$BOT_TEMPLATE" "$BOT_CONFIG"
|
||||||
|
chmod 644 "$BOT_CONFIG" # 设置文件权限(按需修改)
|
||||||
|
else
|
||||||
|
echo "ℹ️ Bot 配置文件已存在,跳过生成: $BOT_CONFIG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "❌ 错误:模板文件不存在: $BOT_TEMPLATE" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 步骤 3: 复制环境文件
|
||||||
|
ENV_TEMPLATE="$TEMPLATE_DIR/template.env"
|
||||||
|
ENV_TARGET="$TARGET_ENV_FILE"
|
||||||
|
|
||||||
|
if [ -f "$ENV_TEMPLATE" ]; then
|
||||||
|
if [ ! -f "$ENV_TARGET" ]; then
|
||||||
|
echo "🔧 生成环境配置文件: $ENV_TARGET"
|
||||||
|
cp "$ENV_TEMPLATE" "$ENV_TARGET"
|
||||||
|
chmod 600 "$ENV_TARGET" # 敏感文件建议更严格权限
|
||||||
|
else
|
||||||
|
echo "ℹ️ 环境文件已存在,跳过生成: $ENV_TARGET"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "❌ 错误:模板文件不存在: $ENV_TEMPLATE" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ 所有初始化完成!"
|
||||||
|
|
||||||
|
# 执行 Docker CMD 命令
|
||||||
|
exec "$@"
|
||||||
Reference in New Issue
Block a user