diff --git a/docker-compose.yml b/docker-compose.yml index 8ae8edd1b..e86b54f85 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,7 +45,9 @@ services: - "com.docker.compose.project.working_dir=${PROJECT_NAME}_${APP_ENV}" nginx: - image: nginx:alpine + build: + context: ./docker/nginx + dockerfile: Dockerfile container_name: ${PROJECT_NAME}_${APP_ENV}_nginx restart: always ports: @@ -56,10 +58,6 @@ services: - ./src:/var/www/html:rw # 更新下载源列表以加速apt-get - ./docker/debian/sources.list:/etc/apt/sources.list:ro - # 挂载 nginx 配置文件 - - ./docker/nginx/conf.c:/etc/nginx/conf.c:ro - - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro - - ./docker/nginx/sites-enabled:/etc/nginx/sites-enabled:ro # 创建临时目录 - /var/www/server/nginx/proxy_temp_dir - /var/www/server/nginx/proxy_cache_dir diff --git a/docker/nginx/Dockerfile b/docker/nginx/Dockerfile new file mode 100644 index 000000000..6a504e405 --- /dev/null +++ b/docker/nginx/Dockerfile @@ -0,0 +1,21 @@ +FROM nginx:alpine + +# 删除默认配置 +RUN rm /etc/nginx/conf.d/default.conf + + +# 将本地 nginx 配置复制到镜像中 +COPY ./conf.c/ /etc/nginx/conf.c/ +COPY ./default.conf /etc/nginx/conf.d/default.conf +COPY ./sites-enabled/ /etc/nginx/sites-enabled/ + +# 暴露端口 +EXPOSE 80 443 + +# 添加在Dockerfile末尾,CMD命令之前 +COPY ./entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/entrypoint.sh +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] + +# 启动nginx +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker/nginx/entrypoint.sh b/docker/nginx/entrypoint.sh new file mode 100644 index 000000000..eb3a2d224 --- /dev/null +++ b/docker/nginx/entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -e + +echo "=== NGINX Docker 权限初始化 ===" + +# 设置权限 +chmod -R 0444 /etc/nginx/conf.c +chmod 0444 /etc/nginx/conf.d/default.conf +chmod -R 0755 /etc/nginx/sites-enabled + + +# 创建日志目录 +mkdir -p /var/log/nginx + +echo "=== NGINX Docker 权限初始化完成 ===" + +# 执行原有的启动命令 +exec "$@" \ No newline at end of file