Docker 与 angular 502 错误网关组合

Docker compose with angular 502 Bad Gateway

我正在使用 docker compose 将我的应用程序放在服务器上。我有三个容器,angular、spring 和 https-portal。我的 docker 撰写文件:

version: '3.3'

services:
  web: 
    build: './blooming_frontend'
    ports: 
      - 4200:80
    depends_on:
      - spring
  spring:
    build: ./blooming_backend
    ports:
      - 8080:8080
  https-portal:
    image: steveltn/https-portal:1
    depends_on:
        - web
        - spring
    ports:
        - 80:80
        - 443:443
    restart: always
    volumes:
        - ./ssl_certs:/var/lib/https-portal
    environment:
        DOMAINS: 'www.bloomingthebrand.com -> http://web:4200 #production' 

以及 Angular 服务的 docker 文件

FROM node:14.13
MAINTAINER Blooming The Brand dev team <info@bloomingthebrand.com>

# set working directory
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

# add .bin to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH

# install package.json (o sea las dependencies)
COPY package.json /usr/src/app/package.json
RUN npm install
RUN npm install -g @angular/cli@10.0.3 

# add app
COPY . /usr/src/app

# start app
CMD npm start

当我尝试访问 www.bloomingthebrand.com 服务器时 return 502 网关错误 ngix

Angular 应用程序在 4200 端口启动

当你想从另一个容器访问一个容器时,你需要在容器的端口上进行,而不是暴露的端口。事实上,在你的情况下你不需要公开 4200,除非你想绕过 https-portal

也就是说,在这里将 4200 更改为 80 DOMAINS: 'www.bloomingthebrand.com -> http://web:4200 #production',或者不设置端口,因为它是默认的 HTTP。