Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to overwrite nginx default config with docker file?

I have an app which is using React router, and I created a docker image for it. I am using nginx server and it works. But, refreshing a page gives me nginx 404 error. I know that I need to overwrite nginx config file to make it work, but don't know why it doesn't work.

I tried to add some kind of redirect to nginx.conf just to see if it overrides default.conf but it doesn't work. These are my files:

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;
 }

EDIT:

And how to check what config file is running?

like image 322
bobby Avatar asked Dec 02 '25 15:12

bobby


1 Answers

I believe you should use

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

If you want to organise things in conf.d/, add include /etc/nginx/conf.d/* in /etc/nginx/nginx.conf before adding things in conf.d/

Complete config file:

worker_processes 4;

events {
    worker_connections  1024;
}

http {
  server {
      listen       80 default;
      server_name  localhost;
      return 301 https://www.google.com$request_uri;
  }
}
like image 134
Siyu Avatar answered Dec 05 '25 11:12

Siyu



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!