I\'ve a repo with angular and nodejs. I performed in jenkins:
# install globally
npm install -g bower
npm install -g gulp
# install
bower install
npm insta
-
One solution is to link both containers as described in @manish's answer.
But be aware that this is the legacy way of connecting containers together.
From now on, you can use the new docker network feature to create a virtual network and connect both containers to that network:
docker network create mynetwork
docker run -d --net=mynetwork -p 8888:8888 --name "nodejs" localhost:5000/test/nodejs:1
docker run -d --net=mynetwork -p 80:80 --name "nginx" localhost:5000/test/nginx:1
With such a setup, your nginx config file must use
server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s;
as you now refer to other container by their name.
讨论(0)
-
You need to expose the port of the node.js container to which nginx(angular) container will connect.
See the Connect using network port mapping section of docker documentation.
Update : I think, you need to configure the nginx configuration file to the node container. This question has sample nginx file related to your use case (although, not related to containers).
Edit : To map the node app with the nginx, you first need to link the node container with nginx container.
docker run -d -p 80:80 --name "nginx" --link nodejs:nodejs localhost:5000/test/nginx:1
When you link the node container with the nginx container, the node container's address will be saved in the /etc/hosts. So the nginx container can access the node's address from there.
So, in nginx configuration file, the nodejs will be accessible as nodejs' container address:
http {
upstream node-app {
server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
location / {
proxy_pass http://node-app;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
讨论(0)
- 热议问题