node.js - 如何在 docker 容器中配置节点应用程序和 haProxy?
问题描述
我试图在 ubuntu VM 中配置我的节点应用程序(将扩展)和 haProxy docker 容器。我不明白它是如何工作的?我必须如何配置 docker-compose 文件以使其正常工作。我的节点应用程序在 8080 端口工作,我可以在我的浏览器中看到一个(从 VM 绑定端口(来宾:80 到主机:8080),或在 chrome 中打开 VM ip),但我没有在 dockerfile 中公开他(端口 8080)或码头工人撰写。应该是这样吗?
由于应用程序在 8080 端口上运行,我必须使用 haproxy 将他绑定到虚拟机中的另一个端口(例如 8080),但它仅在我将 80 绑定到 80 时才有效,如何?我在这个端口没有应用程序。我的码头工人撰写
version: "3"
services:
node:
build:
context: .
dockerfile: dockerfile
user: "node"
networks:
- back-tier
working_dir: /home/node/app
environment:
- NODE_ENV=production
volumes:
- ./:/home/node/app
lb:
image: 'dockercloud/haproxy:latest'
links:
- node
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 80:80 #(node work on port 8080)
networks:
- front-tier
- back-tier
depends_on:
- node
environment:
- BALANCE=leastconn
networks:
front-tier:
driver: bridge
back-tier:
driver: bridge
internal: true
我的 web 应用程序的 dockerfile
FROM node:12.13.1-alpine3.10
WORKDIR /home/node/app
RUN npm install -g nodemon
#RUN npm install
CMD [ "nodemon", "index.js" ]
感谢
解决方案
推荐阅读
- docker - 在 docker 上服务的 TensorFlow 调用 cuInit 失败:CUresult(-1)
- python - 覆盖 Python setuptool 的默认 include_dirs 和 library_dirs?
- docker - 超级账本作曲家网络安装继续
- java - 由于某种原因连接丢失后,客户端可以读取套接字中的剩余数据吗?
- wordpress - Wordpress 地图网站上的地理位置错误
- javascript - Angular CLI 未正确呈现组件元素
- angular - Angular Material 2 Autocomplete:搜索更改
- excel - Excel VBA 运行时错误 91 使用查找
- c# - 将我的相机从我的角色切换到另一个对象
- multithreading - 如何关闭 pika 消费线程