如何结合 Nginx 和 NodeJS Docker 容器
How to combine a Nginx and a NodeJS Docker container
我有一个托管后端的 nodejs 容器,还有一个托管我的 Angular.
的 nginx 容器
它们都工作正常。我可以访问我的 nodeJS 容器,也可以访问我的 Nginx 容器。
问题是容器之间似乎没有连接。
nginx 容器仅托管包含 angular 但没有来自 NodeJS 的 /dist 文件夹。
是否必须为此编辑 /etc/nginx/nginx.conf
或 --link
命令?
我在某处看到你的 nodejs 和 nginx 会自动绑定。
我的后端是 运行 8888,前端是 8080。
nginx dockerfile(npm install 等已在 jenkins 中执行)
FROM nginx
COPY dist /usr/share/nginx/html/dist
FROM node
Nodejs dockerfile
RUN mkdir -p /usr/src/test
WORKDIR /usr/src/test
COPY node_modules /usr/src/test/
COPY server.js /usr/src/test/
EXPOSE 8080
CMD [ "node", "server.js" ]
我通过表演开始他们:
docker run -d -p 80:80 --name "app" localhost:5000/test/nginx-image:1
docker run -d -p 8888:8888 --name "app-" localhost:5000/test/nodejs-image:1
您需要 link 容器。此外,当 containera 与 containerb 对话时,它将使用 http://container-name not http://localhost 因此您的代码应该考虑到这一点。您会注意到,当您使用 link 时,容器内的 docker 会在主机文件中添加一个条目来实现此效果。使用环境变量,这样您就可以灵活地向其发出请求的域名。并在 运行 容器
时传递此环境变量
确保您公开容器之间的正确端口
我有一个托管后端的 nodejs 容器,还有一个托管我的 Angular.
的 nginx 容器它们都工作正常。我可以访问我的 nodeJS 容器,也可以访问我的 Nginx 容器。
问题是容器之间似乎没有连接。 nginx 容器仅托管包含 angular 但没有来自 NodeJS 的 /dist 文件夹。
是否必须为此编辑 /etc/nginx/nginx.conf
或 --link
命令?
我在某处看到你的 nodejs 和 nginx 会自动绑定。
我的后端是 运行 8888,前端是 8080。
nginx dockerfile(npm install 等已在 jenkins 中执行)
FROM nginx
COPY dist /usr/share/nginx/html/dist
FROM node
Nodejs dockerfile
RUN mkdir -p /usr/src/test
WORKDIR /usr/src/test
COPY node_modules /usr/src/test/
COPY server.js /usr/src/test/
EXPOSE 8080
CMD [ "node", "server.js" ]
我通过表演开始他们:
docker run -d -p 80:80 --name "app" localhost:5000/test/nginx-image:1
docker run -d -p 8888:8888 --name "app-" localhost:5000/test/nodejs-image:1
您需要 link 容器。此外,当 containera 与 containerb 对话时,它将使用 http://container-name not http://localhost 因此您的代码应该考虑到这一点。您会注意到,当您使用 link 时,容器内的 docker 会在主机文件中添加一个条目来实现此效果。使用环境变量,这样您就可以灵活地向其发出请求的域名。并在 运行 容器
时传递此环境变量确保您公开容器之间的正确端口