如何解决无法访问容器中的 Dockerized Angular 应用程序
Dockerfile:
FROM node:current-alpine3.10
RUN mkdir -p /dist/angular
workdir /dist/angular
copY package.json .
RUN npm install --legacy-peer-deps
copY . .
EXPOSE 8500
CMD ["npm","run","start:stage-ena-sso"]
package.json:
...
"scripts": {
"start:stage-ena-sso": "ng serve -o -c=stage-ena-sso --port=8500 --baseHref=/"
}...
文件夹结构:
用于构建 Docker 镜像的命令:
docker build . -t ssoadminuiapp
用于运行 Docker 镜像的命令:
docker run --rm -it -p 8500:8500/tcp ssoadminuiapp:latest
检查容器是否正在运行:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8959e5180eba ssoadminuiapp:latest "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:8500->8500/tcp recursing_fermat
我对 Docker 真的很陌生,因此非常感谢任何有用的初学者友好提示/信息。
解决方法
这就是问题所在:
Angular Live Development Server 正在监听 localhost:8500
因为您的应用程序绑定到容器内的 localhost
,
该端口不可用于端口转发。这就像试图
在绑定到 localhost
的主机上运行服务 - 您可以访问它
本地,但没有任何远程可以连接到它(以及从网络
从角度来看,您的主机与容器“远程”)。
您需要配置 Angular 服务器以绑定到所有地址
在容器 (0.0.0.0
) 中。我不确定如何做到这一点
你的申请;从命令行运行 ng serve
时
是用于设置绑定地址的 --host
选项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。