I released my reactJs application. I have code information as below. But I get the error “11 # 11: host not found in upstream”. where could i have made a mistake Could you help ?
I get an upStream error even though my docker, nginx, and docker-compose file is correct. I had run the same codes before but I could not find where I made changes.
I’ve been researching for 2 days, but I get an upstream not found error.
I couldn’t find where I made a mistake. please can you help with the solution ?
I added the screenshot, it gives upstream not found error. I can’t find a solution https://ibb.co/10BH3bv 1
web: I tried ports like 80, 443 but it is not resolved
default.conf
upstream frontend_server{
server web:3000;
}
server{
listen 80;
resolver 127.0.0.11;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
# SSL
server {
listen 443 ssl;
resolver 127.0.0.11;
ssl_certificate /usr/share/nginx/certificates/fullchain.pem;
ssl_certificate_key /usr/share/nginx/certificates/privkey.pem;
include /etc/ssl-options/options-nginx-ssl.conf;
ssl_dhparam /etc/ssl-options/ssl-dhparams.pem;
location / {
proxy_pass http://frontend_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
#Websocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
docker-compose.yml
version: '3'
services:
nginxproxy:
build:
context: .
dockerfile: Dockerfile.lets
container_name: nginxproxy
networks:
- nginx_network
restart: always
expose:
- 80
ports:
- "443:443"
- "80:80"
environment:
DOMAIN: mySiteaddress.com
EMAIL: myMail@hotmail.com
RENEW_INTERVAL: 12h
volumes:
- ./certificates:/usr/share/nginx/certificates
- ./default.conf:/etc/nginx/conf.d/default.conf
web:
build:
context: .
dockerfile: Dockerfile.dev
container_name: web
networks:
- nginx_network
expose:
- 3000
ports:
- "3000:3000"
depends_on:
- nginxproxy
volumes:
- /app/node_modules
- .:/app
tests:
build:
context: .
dockerfile: Dockerfile.dev
container_name: tests
volumes:
- /app/node_modules
- .:/app
command: ["npm","run","test"]
networks:
nginx_network:
driver: bridge
Dockerfile.dev
FROM node:alpine
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "run", "start"]
Dockerfile.lets
FROM nginx:1.15-alpine
RUN apk add inotify-tools certbot openssl ca-certificates
WORKDIR /opt
COPY entrypoint.sh nginx-letsencrypt
COPY certbot.sh certbot.sh
COPY ssl-options/ /etc/ssl-options
COPY default.conf /etc/nginx/conf.d/default.conf
RUN chmod +x nginx-letsencrypt && \
chmod +x certbot.sh
EXPOSE 443
ENTRYPOINT ["./nginx-letsencrypt"]
CMD ["nginx", "-g", "daemon off;"]
package.json
{
"name": "customer_Flow",
"version": "1.0.0",
"description": "Customer flow",
"copyright": "Copyright 2019",
"license": "MIT",
"private": true,
"repository": {
"type": "git",
"url": "git@github.com:coreui/coreui-free-react-admin-template.git"
},
"dependencies": {
"@coreui/coreui": "^2.1.16",
"@coreui/coreui-plugin-chartjs-custom-tooltips": "^1.3.1",
"@coreui/icons": "0.3.0",
"@coreui/react": "^2.5.7",
"@date-io/date-fns": "^2.6.1",
"@devexpress/dx-react-chart": "^2.6.2",
"@devexpress/dx-react-chart-material-ui": "^2.6.2",
"@devexpress/dx-react-core": "^2.6.2",
"@devexpress/dx-react-grid": "^2.6.0",
"@devexpress/dx-react-grid-material-ui": "^2.6.0",
"@devexpress/dx-react-scheduler": "^2.6.0",
"@devexpress/dx-react-scheduler-material-ui": "^2.6.0",
"@material-ui/core": "^4.9.8",
"@material-ui/icons": "^4.9.1",
"bootstrap": "^4.4.1",
"chart.js": "^2.9.2",
"classnames": "^2.2.6",
"core-js": "^3.6.4",
"cors": "^2.8.5",
"corsproxy": "^1.5.0",
"date-fns": "^2.12.0",
"dotenv": "^8.2.0",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2",
"flag-icon-css": "^3.4.6",
"font-awesome": "^4.7.0",
"http-proxy-middleware": "^0.20.0",
"jquery": "^3.4.1",
"jwt-decode": "^2.2.0",
"moment": "^2.24.0",
"node-sass": "^4.13.1",
"nodemon": "^2.0.2",
"prettier": "^1.18.2",
"prop-types": "^15.7.2",
"react": "^16.13.1",
"react-alert": "^6.0.1",
"react-alert-template-basic": "^1.0.0",
"react-app-polyfill": "^1.0.6",
"react-chartjs-2": "^2.9.0",
"react-dom": "^16.13.1",
"react-notifications-component": "^2.4.0",
"react-redux": "^7.2.0",
"react-router-config": "^5.1.1",
"react-router-dom": "^5.1.2",
"react-test-renderer": "^16.13.1",
"reactstrap": "^8.4.1",
"redux": "^4.0.5",
"redux-devtools-extension": "^2.13.8",
"redux-persist": "^6.0.0",
"redux-thunk": "^2.3.0",
"simple-line-icons": "^2.4.1",
"typescript": "^3.8.3"
},
"devDependencies": {
"react-scripts": "^3.4.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"test:cov": "npm test -- --coverage --watchAll=false",
"test:debug": "react-scripts --inspect-brk test --runInBand",
"eject": "react-scripts eject"
},
"bugs": {
"url": "https://github.com/coreui/coreui-free-react-admin-template/issues"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 9",
"not op_mini all"
],
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx}",
"!**/*index.js",
"!src/serviceWorker.js",
"!src/polyfill.js"
]
},
"engines": {
"node": ">=8.10",
"npm": ">=6"
}
}
``
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
@pkraak,
It could be possible that the containers you are trying to link may not be on the same network.
You could try putting them all on the same network:
I am having nearly identical issue. If you connect to the nginx container you will find that you cannot resolve external URL from within, it is not using your host DNS. I connect with $docker exec -it container_name /bin/bash
I have not been able to find a way to use docker-compose networking (i.e. linking between containers, depends_on) AND set DNS to access external hosts.
has anyone else solved this?
Hi there @turkdoktoru,
I believe that the problem is caused by the
depends_on
directive, currently, your web service depends on the Nginx service, but it has to be the other way around.You need to have your web service up and running first before bringing up your Nginx service otherwise the Nginx service would fail as it would not find the web service.
Let me know how it goes! Regards, Bobby