Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用docker文件覆盖nginx默认配置?_Docker_Nginx_Dockerfile_Nginx Config - Fatal编程技术网

如何用docker文件覆盖nginx默认配置?

如何用docker文件覆盖nginx默认配置?,docker,nginx,dockerfile,nginx-config,Docker,Nginx,Dockerfile,Nginx Config,我知道已经有人问过这个问题或类似的问题,但我已经为此奋斗了一段时间。我有一个使用react路由器的应用程序,我为它制作了docker镜像,我正在使用nginx服务器,它正在工作。但是,当我想刷新页面时,我给出了nginx404错误。我知道我需要覆盖nginx配置文件使其工作,但不知道为什么它不工作。我试图重定向到nginx.conf,只是想看看它是否超过了default.conf,但它不起作用。这是我的文件: Dockerfile: FROM nginx:alpine COPY ./nginx/

我知道已经有人问过这个问题或类似的问题,但我已经为此奋斗了一段时间。我有一个使用react路由器的应用程序,我为它制作了docker镜像,我正在使用nginx服务器,它正在工作。但是,当我想刷新页面时,我给出了nginx404错误。我知道我需要覆盖nginx配置文件使其工作,但不知道为什么它不工作。我试图重定向到nginx.conf,只是想看看它是否超过了default.conf,但它不起作用。这是我的文件:

Dockerfile:

FROM nginx:alpine
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
nginx.conf

server {
    listen       80 default;
    server_name  localhost;
    return 301 https://www.google.com;
 }
编辑:


以及如何检查正在运行的配置文件?

我认为您应该使用

COPY ./nginx/default.conf /etc/nginx/nginx.conf 
如果要在
conf.d/
中组织内容,请在
/etc/nginx/nginx.conf/*
中添加
include/etc/nginx/conf.d/*
,然后再在
conf.d/
中添加内容

完整配置文件:

worker_processes 4;

events {
    worker_connections  1024;
}

http {
  server {
      listen       80 default;
      server_name  localhost;
      return 301 https://www.google.com$request_uri;
  }
}

我相信你应该使用

COPY ./nginx/default.conf /etc/nginx/nginx.conf 
如果要在
conf.d/
中组织内容,请在
/etc/nginx/nginx.conf/*
中添加
include/etc/nginx/conf.d/*
,然后再在
conf.d/
中添加内容

完整配置文件:

worker_processes 4;

events {
    worker_connections  1024;
}

http {
  server {
      listen       80 default;
      server_name  localhost;
      return 301 https://www.google.com$request_uri;
  }
}

你用什么url访问容器?localhost-我用docker run破坏容器-p 80:80 FrontEnd你用什么url访问容器?localhost-我用docker run破坏容器-p 80:80 FrontEnd你能试试这个配置文件吗?也许nginx未能启动感谢您的帮助,但仍然无法解决此问题。。。不要认为它失败了,因为刷新时我从nginxyea收到404错误我在复制代码时犯了错误,我现在编辑了,但这不是问题,我的Nginx配置仍然没有超过默认配置我的dockerfile与你的相同,我的工作正常。检查以确保它不是另一个运行的nginx,重建映像并运行它。我做了所有这些,删除所有未扫描的映像(有两个不同的nginx),然后重建并运行它,现在只有一个正在运行,仍然不起作用。您可以尝试此配置文件吗?也许nginx未能启动感谢您的帮助,但仍然无法解决此问题。。。不要认为它失败了,因为刷新时我从nginxyea收到404错误我在复制代码时犯了错误,我现在编辑了,但这不是问题,我的Nginx配置仍然没有超过默认配置我的dockerfile与你的相同,我的工作正常。检查以确保它不是另一个运行的nginx,重建图像并运行它。我做了所有这些,删除所有未显示的图像(有两个不同的nginx),然后重建并运行它,现在只有一个正在运行,仍然不起作用