po / Dockerfile
sehsapneb's picture
Update Dockerfile
9de43f5 verified
raw
history blame
1.66 kB
# 使用轻量级的 Nginx Alpine 镜像
FROM nginx:alpine
# 修改主 Nginx 配置文件 /etc/nginx/nginx.conf
# 使用 -E 启用扩展正则表达式,并使用 # 作为 sed 的分隔符以避免路径中 / 的冲突
# 1. 修改 PID 文件路径:
# 目标是找到类似 'pid /run/nginx.pid;' 的行 (允许路径前后有不同数量的空格)
# 并将其替换为 'pid /tmp/nginx.pid;'
# [[:space:]]+ 匹配一个或多个空格/制表符。
# [[:space:]]* 匹配零个或多个空格/制表符。
# \. 匹配一个实际的点号 '.'
RUN sed -i -E 's#^[[:space:]]*pid[[:space:]]+/run/nginx\.pid[[:space:]]*;#pid /tmp/nginx.pid;#g' /etc/nginx/nginx.conf
# 2. 注释掉 'user' 指令:
# 目标是找到类似 'user nginx;' 的行 (允许 user 和 nginx 之间以及行尾有不同数量的空格)
# 并在行首添加 '#' 注释符。
# \1 代表第一个捕获组的内容。
RUN sed -i -E 's#^([[:space:]]*user[[:space:]]+nginx[[:space:]]*;)#\#\1#g' /etc/nginx/nginx.conf
# (可选的调试步骤,Hugging Face 的构建日志可能不显示 RUN 命令的输出)
# RUN echo "DEBUG: Content of /etc/nginx/nginx.conf after sed modifications:"
# RUN cat /etc/nginx/nginx.conf
# RUN echo "DEBUG: End of nginx.conf content"
# 移除默认的 Nginx 欢迎页面配置
RUN rm -f /etc/nginx/conf.d/default.conf
# 将我们自定义的 nginx.conf (包含 server 块) 复制到容器的 Nginx 配置目录中
COPY nginx.conf /etc/nginx/conf.d/nginx.conf
# 暴露容器的 7860 端口 (与 nginx.conf 中的 listen 端口一致)
EXPOSE 7860
# 启动 Nginx 服务,并保持在前台运行
CMD ["nginx", "-g", "daemon off;"]