Update Dockerfile
Browse files- Dockerfile +28 -27
Dockerfile
CHANGED
|
@@ -1,35 +1,36 @@
|
|
| 1 |
# 使用轻量级的 Nginx Alpine 镜像
|
| 2 |
FROM nginx:alpine
|
| 3 |
|
| 4 |
-
#
|
| 5 |
-
#
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
#
|
| 9 |
-
#
|
| 10 |
-
#
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
RUN rm -f /etc/nginx/conf.d/default.conf
|
| 17 |
|
| 18 |
-
#
|
| 19 |
-
|
| 20 |
|
| 21 |
-
#
|
| 22 |
-
COPY nginx.conf.template /etc/nginx/templates/nginx.conf.template
|
| 23 |
-
|
| 24 |
-
# 将入口点脚本复制到镜像中并赋予执行权限
|
| 25 |
-
COPY entrypoint.sh /entrypoint.sh
|
| 26 |
-
RUN chmod +x /entrypoint.sh
|
| 27 |
-
|
| 28 |
-
# 暴露端口
|
| 29 |
EXPOSE 7860
|
| 30 |
|
| 31 |
-
#
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
# CMD 可以被 ENTRYPOINT 覆盖,这里可以保留一个默认的,但实际由 entrypoint.sh 的 exec 启动
|
| 35 |
-
# CMD ["nginx", "-g", "daemon off;"]
|
|
|
|
| 1 |
# 使用轻量级的 Nginx Alpine 镜像
|
| 2 |
FROM nginx:alpine
|
| 3 |
|
| 4 |
+
# 修改主 Nginx 配置文件 /etc/nginx/nginx.conf
|
| 5 |
+
# 使用 -E 启用扩展正则表达式,并使用 # 作为 sed 的分隔符以避免路径中 / 的冲突
|
| 6 |
+
|
| 7 |
+
# 1. 修改 PID 文件路径:
|
| 8 |
+
# 目标是找到类似 'pid /run/nginx.pid;' 的行 (允许路径前后有不同数量的空格)
|
| 9 |
+
# 并将其替换为 'pid /tmp/nginx.pid;'
|
| 10 |
+
# [[:space:]]+ 匹配一个或多个空格/制表符。
|
| 11 |
+
# [[:space:]]* 匹配零个或多个空格/制表符。
|
| 12 |
+
# \. 匹配一个实际的点号 '.' 。
|
| 13 |
+
RUN sed -i -E 's#^[[:space:]]*pid[[:space:]]+/run/nginx\.pid[[:space:]]*;#pid /tmp/nginx.pid;#g' /etc/nginx/nginx.conf
|
| 14 |
+
|
| 15 |
+
# 2. 注释掉 'user' 指令:
|
| 16 |
+
# 目标是找到类似 'user nginx;' 的行 (允许 user 和 nginx 之间以及行尾有不同数量的空格)
|
| 17 |
+
# 并在行首添加 '#' 注释符。
|
| 18 |
+
# \1 代表第一个捕获组的内容。
|
| 19 |
+
RUN sed -i -E 's#^([[:space:]]*user[[:space:]]+nginx[[:space:]]*;)#\#\1#g' /etc/nginx/nginx.conf
|
| 20 |
+
|
| 21 |
+
# (可选的调试步骤,Hugging Face 的构建日志可能不显示 RUN 命令的输出)
|
| 22 |
+
# RUN echo "DEBUG: Content of /etc/nginx/nginx.conf after sed modifications:"
|
| 23 |
+
# RUN cat /etc/nginx/nginx.conf
|
| 24 |
+
# RUN echo "DEBUG: End of nginx.conf content"
|
| 25 |
+
|
| 26 |
+
# 移除默认的 Nginx 欢迎页面配置
|
| 27 |
RUN rm -f /etc/nginx/conf.d/default.conf
|
| 28 |
|
| 29 |
+
# 将我们自定义的 nginx.conf (包含 server 块) 复制到容器的 Nginx 配置目录中
|
| 30 |
+
COPY nginx.conf /etc/nginx/conf.d/nginx.conf
|
| 31 |
|
| 32 |
+
# 暴露容器的 7860 端口 (与 nginx.conf 中的 listen 端口一致)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
EXPOSE 7860
|
| 34 |
|
| 35 |
+
# 启动 Nginx 服务,并保持在前台运行
|
| 36 |
+
CMD ["nginx", "-g", "daemon off;"]
|
|
|
|
|
|
|
|
|