Docker中的Angular未正确显示端口

Docker中的Angular未正确显示端口,angular,docker,dockerfile,alpine,Angular,Docker,Dockerfile,Alpine,Dockerfile.dev FROM node:12.7-alpine AS serve WORKDIR /app RUN npm install -g @angular/cli@latest COPY ./package.json . RUN npm install COPY . . CMD ["ng", "serve", "--port=81"] 命令 docker build -f Dockerfile.dev -t angular-app docker run -d -p 81

Dockerfile.dev

FROM node:12.7-alpine AS serve

WORKDIR /app

RUN npm install -g @angular/cli@latest
COPY ./package.json .
RUN npm install
COPY . .

CMD ["ng", "serve", "--port=81"]
命令

docker build -f Dockerfile.dev -t angular-app
docker run -d -p 81:81 angular-app

您似乎缺少EXPOSE命令

尝试在
CMD
行上方添加此命令

EXPOSE 81
此外,您可能需要使用
CMD[“npm”,“start”]


编辑:不,忽略这个。正如@shashankV所提到的,expose仅用于文档目的。

您似乎缺少expose命令

尝试在
CMD
行上方添加此命令

EXPOSE 81
此外,您可能需要使用
CMD[“npm”,“start”]


编辑:不,忽略这个。正如@shashankV所提到的,expose仅用于文档目的。

您的应用程序可能绑定到容器内的
localhost
地址。如果是这样,它将无法从外部访问。将地址更改为
0.0.0.0


关于
EXPOSE
的其他答案不正确<代码>公开除了用作文档之外,什么都不做

您的应用程序可能绑定到容器内的
localhost
地址。如果是这样,它将无法从外部访问。将地址更改为
0.0.0.0


关于
EXPOSE
的其他答案不正确<代码>公开除了用作文档之外,什么都不做

缺少暴露端口:暴露81暴露端口是什么意思?什么不起作用?缺少暴露端口:暴露81暴露端口是什么意思?什么不工作?不确定
CMD[“npm”,“start”]
部分,因为Angular默认使用端口4200。您只需将启动脚本设置为“ng serve--port=81”。无论哪种方式都不重要。重要的是
EXPOSE 81
行。EXPOSE仅用于文档目的,它不会“公开”任何内容。是的,你是对的。伟大的主啊。我希望我能尽早发现这一点。我不确定
CMD[“npm”,“start”]
部分,因为Angular默认使用端口4200。您只需将启动脚本设置为“ng serve--port=81”。无论哪种方式都不重要。重要的是
EXPOSE 81
行。EXPOSE仅用于文档目的,它不会“公开”任何内容。是的,你是对的。伟大的主啊。我希望早点发现这件事