Docker中的Angular未正确显示端口
Dockerfile.devDocker中的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
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仅用于文档目的,它不会“公开”任何内容。是的,你是对的。伟大的主啊。我希望早点发现这件事