Angular 应用程序未从 docker-compose.yml 文件运行
·
问题:Angular 应用程序未从 docker-compose.yml 文件运行
我为我的 Angular 应用程序编写了以下 docker 文件。
Dockerfile:
# base image
FROM node:10.16.0-alpine AS build-step
# set working directory
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:1.16.1-alpine
COPY --from=build-step /app/dist/* /usr/share/nginx/html/
EXPOSE 4100
CMD ["nginx","-g","daemon off;"]
Docker 镜像创建成功。在我写的 docker-compose.yml 文件中:
version: '3'
services:
applicationui:
image: applicationui
build: /
network_mode: host
container_name: angular-container
ports:
- 4200:4100
当我使用 localhost:4200 访问浏览器时执行 docker-compose up 后,页面没有打开。
运行 docker-compose up
任何线索我错过了什么?
解答
您没有在 Dockerfile 中覆盖 Nginx 配置,因此端口的实际问题是 Nginx 默认监听PORT 80。所以改变暴露的端口。
EXPOSE 80
作为 Nginx 默认监听端口80,而不是端口4100,如 Angular ng serve 等,你期望从 Nginx。
所以最好使用 Expose80这将增加可读性,因为@David 提到如果你设置 network_mode: host 没有任何效果。
所以用80打开你的浏览器,它应该可以工作。
或者您可以绑定所需的端口,而无需在 docker-compose 中提及主机网络
ports:
- 4200:80
http://localhost/
更多推荐
所有评论(0)