嗨,我尝试着在容器上运行我的角度应用程序。
我将docker dekstop用于具有hyper-v的Windows。
Docker版本:
Client/Sever: Docker Engine - Community
Version: 18.09.2
API version: 1.39
我对图像使用多阶段构建:
### STAGE 1: Build ###
FROM node:12.7-alpine AS builder
WORKDIR /usr/src/app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build
### STAGE 2: Run ###
FROM nginx:alpine
COPY --from=builder /usr/src/app/dist /usr/share/nginx/html
EXPOSE 4200
CMD [ "nginx", "-g", "daemon off;" ]
构建后,我使用以下命令运行它:
$ docker run -d --port 4200:4200 --name app app-image
我明白了
4200/tcp -> 0.0.0.0:4200
但是当我尝试进入localhost:4200
时,我在Chrome上获得了This site is down
的信息
当我不使用此命令指定端口时,几乎所有东西都可以工作:
docker run --rm -d --name app -P app-image
会将我的通讯映射到我的容器上的端口80
80/tcp -> 0.0.0.0:32769
4200/tcp -> 0.0.0.0:32768
在这种访问方式localhost:32769
上,我将得到除localhost:32768
以外的所有内容,就像之前的示例一样。
我在其中缺少什么?