chore: 优化entrypoint.sh 去掉带参数设置
This commit is contained in:
@@ -86,7 +86,41 @@ EXPOSE 9000 8080
|
|||||||
# 添加在Dockerfile末尾,CMD命令之前
|
# 添加在Dockerfile末尾,CMD命令之前
|
||||||
COPY ./entrypoint.sh /usr/local/bin/
|
COPY ./entrypoint.sh /usr/local/bin/
|
||||||
RUN chmod +x /usr/local/bin/entrypoint.sh
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||||
|
|
||||||
|
# 设置环境变量来控制entrypoint行为
|
||||||
|
# 可以通过docker run -e 或docker-compose.yml覆盖这些值
|
||||||
|
# ENV PHP_APP_ROOT=/var/www/html \
|
||||||
|
# USER_ID=33 \
|
||||||
|
# GROUP_ID=33
|
||||||
|
# ========================================
|
||||||
|
# Dockerfile 配置选项说明
|
||||||
|
# ========================================
|
||||||
|
#
|
||||||
|
# 1. 默认行为(当前配置):
|
||||||
|
# - 使用 /var/www/html 作为应用根目录
|
||||||
|
# - 启动 supervisord
|
||||||
|
# - 适用于标准Web应用
|
||||||
|
#
|
||||||
|
# 2. 自定义应用根目录:
|
||||||
|
# 在docker run时覆盖环境变量:
|
||||||
|
# docker run -e PHP_APP_ROOT=/custom/app php-app
|
||||||
|
#
|
||||||
|
# 3. 传递路径参数给entrypoint:
|
||||||
|
# 修改ENTRYPOINT来包含路径:
|
||||||
|
# ENTRYPOINT ["/usr/local/bin/entrypoint.sh", "/custom/path"]
|
||||||
|
# CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||||
|
#
|
||||||
|
# 4. 不同启动命令:
|
||||||
|
# 修改CMD来启动不同服务:
|
||||||
|
# CMD ["php-fpm"] # 直接启动PHP-FPM
|
||||||
|
# CMD ["/bin/bash"] # 启动shell进行调试
|
||||||
|
# CMD ["apache2ctl", "-D", "FOREGROUND"] # 启动Apache
|
||||||
|
#
|
||||||
|
# ========================================
|
||||||
|
|
||||||
|
# 设置ENTRYPOINT,注意这里不会带路径参数
|
||||||
|
# 路径可以通过环境变量PHP_APP_ROOT控制,默认是/var/www/html
|
||||||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||||
|
|
||||||
# 修改CMD命令
|
# CMD会作为参数传递给entrypoint.sh
|
||||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||||
@@ -6,20 +6,17 @@ show_help() {
|
|||||||
cat << EOF
|
cat << EOF
|
||||||
=== Web应用权限初始化脚本 ===
|
=== Web应用权限初始化脚本 ===
|
||||||
|
|
||||||
用法: $0 [app_root_dir] [--help|-h]
|
用法: $0 [--help|-h]
|
||||||
|
|
||||||
参数:
|
参数:
|
||||||
app_root_dir 应用根目录路径 (可选)
|
|
||||||
--help, -h 显示此帮助信息
|
--help, -h 显示此帮助信息
|
||||||
|
|
||||||
|
|
||||||
优先级:
|
优先级:
|
||||||
1. 命令行参数 (最高优先级)
|
1. 环境变量 PHP_APP_ROOT
|
||||||
2. 环境变量 PHP_APP_ROOT
|
2. 默认值 /var/www/html
|
||||||
3. 默认值 /var/www/html
|
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
$0 /var/www/html # 使用命令行参数
|
|
||||||
$0 /data/www # 自定义路径
|
|
||||||
$0 # 使用环境变量或默认值
|
$0 # 使用环境变量或默认值
|
||||||
PHP_APP_ROOT=/custom $0 /var/www # 参数优先,忽略环境变量
|
PHP_APP_ROOT=/custom $0 /var/www # 参数优先,忽略环境变量
|
||||||
|
|
||||||
@@ -28,36 +25,22 @@ EOF
|
|||||||
|
|
||||||
echo "=== Web应用权限初始化 ==="
|
echo "=== Web应用权限初始化 ==="
|
||||||
|
|
||||||
# 解析命令行参数
|
# 默认值
|
||||||
# 用法: entrypoint.sh [app_root_dir] [--help|-h]
|
APP_ROOT="/var/www/html"
|
||||||
|
SOURCE="默认值"
|
||||||
|
|
||||||
# 检查帮助参数
|
if [ -n "${PHP_APP_ROOT}" ]; then
|
||||||
if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
|
|
||||||
show_help
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -gt 0 ]; then
|
|
||||||
# 优先使用命令行参数
|
|
||||||
APP_ROOT="$1"
|
|
||||||
SOURCE="命令行参数"
|
|
||||||
elif [ -n "${PHP_APP_ROOT}" ]; then
|
|
||||||
# 其次使用环境变量
|
# 其次使用环境变量
|
||||||
APP_ROOT="${PHP_APP_ROOT}"
|
APP_ROOT="${PHP_APP_ROOT}"
|
||||||
SOURCE="环境变量 PHP_APP_ROOT"
|
SOURCE="环境变量 PHP_APP_ROOT"
|
||||||
else
|
|
||||||
# 最后使用默认值
|
|
||||||
APP_ROOT="/var/www/html"
|
|
||||||
SOURCE="默认值"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "使用应用根目录: $APP_ROOT (来源: $SOURCE)"
|
echo "使用应用根目录: $APP_ROOT (来源: $SOURCE)"
|
||||||
|
|
||||||
# 验证应用根目录是否有效
|
# 验证应用根目录是否有效
|
||||||
if [ ! -d "$APP_ROOT" ]; then
|
if [ ! -d "$APP_ROOT" ]; then
|
||||||
echo "⚠️ 警告: 应用根目录 '$APP_ROOT' 不存在"
|
echo "⚠️ 警告: 应用根目录 '$APP_ROOT' 不存在, 程序退出"
|
||||||
echo "将尝试创建该目录..."
|
exit 1
|
||||||
mkdir -p "$APP_ROOT" 2>/dev/null || echo "❌ 无法创建目录 '$APP_ROOT'"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 创建统一的Web组并配置所有用户(最高效的权限管理)
|
# 创建统一的Web组并配置所有用户(最高效的权限管理)
|
||||||
|
|||||||
Reference in New Issue
Block a user