我正在使用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时,服务器返回502网关错误ngix
Angular应用程序在端口4200上运行
发布于 2020-10-30 05:58:19
当你想从另一个容器访问另一个容器时,你需要在容器的端口上进行访问,而不是在暴露的端口上。实际上,在您的示例中,您不需要公开4200,除非您想绕过https-portal
也就是说,在这里将4200改为80,或者只是不将端口设置为默认的DOMAINS: 'www.bloomingthebrand.com -> http://web:4200 #production'。
https://stackoverflow.com/questions/64599750
复制相似问题