将nginx.conf文件放置在Docker容器中的位置

时间:2019-03-19 18:32:39

标签: docker nginx

我有一个在docker容器内的AWS ec2中运行的flask应用程序,但出现延迟问题。我认为这是因为在容器内,本地主机同时路由到ipv4的127.0.0.1和ipv6的::1(基于其他SO帖子)。我发现this blog post可以解决此问题。但是在博客中,他使用了nginx,这是我以前从未使用过的。他有一个Nginx配置文件:

location / { try_files $uri @project; }
location @project {
    include uwsgi_params;
    uwsgi_pass unix:/tmp/uwsgi.sock;
}

并且我不确定如何将其放置在容器中以便正确读取。我在/ etc / nginx中读到了某个地方,但是然后如何编辑dockerfile以在其中包含此conf?

这是他建议的Dockerfile。文件复制到的行ADD nginx /etc/nginx是吗?他只是没有给文件扩展名?

FROM ubuntu:14.04

RUN apt-get update && apt-get install -y build-essential nginx python3.4 python3.4-dev
RUN easy_install3 pip

WORKDIR /project

ADD requirements.txt /project/requirements.txt
RUN pip install -r requirements.txt

ADD . /project

ADD nginx /etc/nginx

CMD uwsgi -s /tmp/uwsgi.sock -w project:app --chown-socket=www-data:www-data --enable-threads & \
    nginx -g 'daemon off;'

1 个答案:

答案 0 :(得分:1)

是的,他正在将文件nginx添加到容器文件系统位置/etc/nginx/

根据nginx.conf文档,我个人将文件命名为nginx,因为这是默认名称。

  

默认情况下,配置文件名为nginx.conf并放置在   目录/ usr / local / nginx / conf,/ etc / nginx或   / usr / local / etc / nginx。

此外,我建议根据Best practices for writing Dockerfiles使用COPY代替ADD

  

对于不需要ADD的tar的其他项(文件,目录)   自动提取功能,您应该始终使用COPY。

要执行此操作,您需要在运行flask的容器上安装nginx

相关问题