我确实搜索了如何使用Nginx对一个有角度的应用程序进行docker化。 但是它没有显示在我的http://localhost:8080/或http://locahost:8000
中下面是我的文件:(Docker文件)
FROM node:10.16.1-alpine as build-stage
COPY . /usr/angular
WORKDIR /usr/angular
RUN npm install
RUN npm run build
#Deploy to NGINX
FROM nginx:1.16.0-alpine as deployment-stage
RUN rm -rf /usr/share/nginx/html/*
COPY --from=build-stage /usr/angular/dist/ldap-web-app/* /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
然后我在bash中运行命令。
docker build -t ldap-web-app .
打开浏览器时,“无法显示页面”。 我错过了什么?请帮忙。谢谢。
答案 0 :(得分:0)
您将容器的端口80暴露在外面,因此需要在那里连接。 不是8080或8000
“ docker run -it -p 80:80 --name ldap-web-app ldap-web-app”
查看文档-https://docs.docker.com/config/containers/container-networking/#published-ports
-p 8080:80 - Map TCP port 80 in the container to port 8080 on the Docker host.
答案 1 :(得分:0)
您正在将容器的端口80
暴露给docker主机,但是您试图在端口8080
或8000
上访问它。
假设已成功完成关于nginx
的所有设置,
根据您希望Angular App在Docker主机上可用的端口尝试以下命令之一:
docker run -it -p 8080:80 --name ldap-web-app ldap-web-app
docker run -it -p 8000:80 --name ldap-web-app ldap-web-app
docker run -it -p 80:80 --name ldap-web-app ldap-web-app
端口映射应这样声明:
-p CONTAINER:HOST
我建议您阅读official docs。