首页 > 解决方案 > 如何使用复制到容器的站点启动 nginx docker 容器?

问题描述

我写了这样一个 docker 文件,运行容器并打开 localhost,打开 nginx,尽管该站点应该从 /var/www/html 文件夹打开。如何解决问题?

FROM nginx

RUN apt-get update && apt-get -y install zip
WORKDIR  /02_Continuous_Delivery/html
COPY . /var/www/html
RUN rm -f /var/www/html/site.zip; zip -r /var/www/html/site.zip /02_Continuous_Delivery/html
EXPOSE 80

标签: dockernginxdockerfile

解决方案


您的问题是默认情况下 nginx 映像提供如下配置(/etc/nginx/conf.d/default.conf):

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

因此,您应该将您的站点复制到/usr/share/nginx/html目录或提供您的自定义配置并将位置根目录设置为/var/www/html目录。

对于第二种解决方案,您可以创建文件default.conf,其内容如下:

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root   /var/www/html;
        index  index.html index.htm;
    }
}

并将其复制到Dockerfile中的 /etc/nginx/conf.d/ 目录

COPY default.conf /etc/nginx/conf.d/

推荐阅读