24 lines
702 B
Bash
24 lines
702 B
Bash
#!/bin/sh
|
|
|
|
# 退出脚本,如果任何命令失败
|
|
set -e
|
|
|
|
echo "--- 容器启动,执行初始化任务 ---"
|
|
|
|
# 检查构建脚本是否存在
|
|
if [ ! -f "/app/scripts/build.sh" ]; then
|
|
echo "错误: 构建脚本 /app/scripts/build.sh 未找到!"
|
|
exit 1
|
|
fi
|
|
|
|
# 1. 在容器启动时立即执行一次构建
|
|
echo "执行首次构建..."
|
|
/app/scripts/build.sh /app/scripts/work
|
|
|
|
echo "--- 初始化完成,启动 cron 服务 ---"
|
|
|
|
# 2. 执行 Dockerfile CMD 中定义的命令 (即 "crond -f -l 8")
|
|
# exec 会用 CMD 的命令替换当前的 shell 进程,
|
|
# 使得 crond 成为容器的主进程 (PID 1),能够正确接收和处理信号。
|
|
# 这是保持容器运行的关键。
|
|
exec "$@" |