首页 > 解决方案 > 如何在 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" ]

感谢

标签: node.jsdockerdocker-composedockerfilehaproxy

解决方案


推荐阅读