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。
我正在使用 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。