我正在使用docker compose将我的应用程序放到服务器上。我有三个容器whith、angular、spring和https门户。我的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
角度应用程序在端口4200 中启动
当您想从另一个容器访问容器时,您需要在容器的端口上访问,而不是在暴露的端口上。事实上,在您的情况下,您不需要公开4200,除非您想绕过https-portal
也就是说,在这里DOMAINS: 'www.bloomingthebrand.com -> http://web:4200 #production'
将4200更改为80,或者不设置端口,因为它是默认的HTTP。