【问题标题】:Azure web app multi container (MEAN app), what is the URL to connect to node backend container from front end container?Azure Web 应用多容器(MEAN 应用),从前端容器连接到节点后端容器的 URL 是什么?
【发布时间】:2022-01-12 06:03:22
【问题描述】:

尝试学习使用多容器将 Angular 应用程序部署到 azure Web 应用程序,前端加载正常但无法连接到后端节点容器,我想将节点后端的 url 添加到我的 Angular 前端但我不知道出它是什么。我试过https://rojesh.azure.io:3000https://rojesh.azurewebsites.net:3000、http://server:3000 等等,但似乎没有任何效果。网站主机名:https://rojesh.azurewebsites.net,acr 名称是 rojesh.azurecr.io,它有 3 个图像。这是我在 azure 中撰写的配置文件:

version: '3.3'

services:
    db:
      image: rojesh.azurecr.io/db:latest
      ports:
        - "27017:27017"
      restart: always
      networks:
        - app-network

    server:
      image: rojesh.azurecr.io/server:latest
      depends_on:
        - db
      ports:
        - "3000:3000"
      restart: always
      networks:
        - app-network

    app:
      depends_on:
        - server
      image: rojesh.azurecr.io/app:latest
      environment:
        NGINX_HOST: rojesh.azurewebsites.net
        NGINX_PORT: 80
      ports:
        - "80:80"
      restart: always
      networks:
        - app-network

networks:
  app-network:
    driver: bridge 

该应用程序使用 docker compose 在本地运行良好:

version: '3.9'

services:
  docker-app:
    build:
      context: app 
      dockerfile: Dockerfile.dev
    ports:
      - '4200:4200'
    volumes:
      - ./app/src:/app/src 
      

  docker-server:
    build:
      context: server
      dockerfile: Dockerfile
    environment: 
      PORT: 3000
      MONGODB_URI: mongodb://mongo:27017/rojesh
      JWT_SECRET: secret
    ports:
      - 3000:3000
    depends_on: 
      - mongo
    volumes:
      - ./server:/server

  mongo:
    container_name: mongo-server
    image: mongo:latest
    ports:
      - 27017:27017
  
    

【问题讨论】:

    标签: node.js angular docker azure-web-app-service mean-stack


    【解决方案1】:

    谢谢@ajkuma-msft。 Azure 应用服务仅公开端口 80443。是的,来自客户端的传入请求刚刚超过 443/80,应该映射到容器的公开端口
    应用服务将尝试检测将哪个端口绑定到您的容器。如果您想将 WEBSITES_PORT 应用设置绑定到您的容器,并使用端口值对其进行配置。

    Web App for Containers 目前只允许您向外界公开一个端口。容器只能在单个端口上侦听 HTTP 请求。

    从 Docker compose 配置的角度来看:808080 以外的端口将被忽略。

    参考Docker Compose options 列表显示支持不支持 Docker Compose 配置选项。

    参考here

    【讨论】:

    • 如果回答对您有帮助,请Accept it as an Answer,以便遇到相同问题的其他人可以找到此解决方案并解决他们的问题。
    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 2021-12-03
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2019-09-03
    相关资源
    最近更新 更多