【问题标题】:nginx docker file cannot open filenginx docker文件无法打开文件
【发布时间】:2017-09-23 12:40:11
【问题描述】:

我正在写一个创建 docker 文件以在容器中运行 openresty nginx。

我的 docker 文件在下面。

FROM ubuntu:latest


ENV PATH="/usr/local/openresty/nginx/sbin:${PATH}"

LABEL info="running open resty on docker container"

RUN  apt-get update -y \
     && apt-get install -y wget \
     && wget -qO - https://openresty.org/package/pubkey.gpg | apt-key add - \
     && apt-get -y install software-properties-common \
     && add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" \
     && apt-get update -y \
     && apt-get install -y openresty
RUN mkdir -p /opt/poc

RUN cd /opt/poc \
       && mkdir logs \
       && touch logs/error.log \
       && mkdir conf \
       && cd ../

RUN chmod -R 755 /opt/poc 
WORKDIR /opt/poc


ADD ./conf/nginx.conf conf/

EXPOSE 8383


CMD ["nginx", "-p /opt/poc","-c conf/nginx.conf"]

图像构建没有问题。但是当我运行 docker 时,我收到以下错误消息。

nginx:[alert] 无法打开错误日志文件:open()" /opt/poc/logs/error.log”失败(2:没有这样的文件或目录) 2017/09/23 03:35:44 [emerg] 1#1: open() "/opt/poc/conf/nginx.conf" 失败(2:没有这样的文件或目录)

如果我更改为CMD $ls,docker 将列出 conf 和 logs 目录,而不是运行 CMD ["nginx", "-p /opt/poc","-c conf/nginx.conf"]。所以我不确定我在这里缺少什么。

【问题讨论】:

标签: docker dockerfile openresty


【解决方案1】:

你的问题很棘手,但我想我已经解决了。

TL;DR

使用这个CMD-p-c 标志中没有空格)

CMD ["nginx", "-g", "daemon off;", "-p", "/opt/poc", "-c", "conf/nginx.conf"]

-g daemon off; 标志将 nginx 作为转发进程。否则,如果它作为守护进程运行,你的容器将在 nginx 启动后死掉。

长答案

当您向任何CMD 命令添加间隔字符串时,就会出现此问题。在你的情况下,-p /opt/poc-c conf/nginx.conf

我相信(我需要在 docs/Docker 源代码中查看更多内容以确认)CMD 忽略了您在 CMD 部分中输入的两个“单词”之一。

正如文档所说,推荐的方法是这样的:

CMD ["executable","param1","param2"]

因此,在您的情况下,您的 params 正在做“更多”而不仅仅是作为参数(“更多”是当您在那里使用空间时)。因此,删除间距并将命令拆分为文档所说的解决问题的方式。

提示

我不知道您的用例是什么,但如果可以,请尝试使用社区提供的图像。在此示例中,openresty 的所有者维护图像:

https://hub.docker.com/r/openresty/openresty

此外,它们还提供了有关如何运行它的良好文档。

希望对你有帮助!

【讨论】:

  • 感谢您建议关闭恶魔。我接受了你的回答。
猜你喜欢
  • 2021-01-04
  • 2020-07-08
  • 2019-01-06
  • 2019-02-18
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多