【发布时间】:2020-03-13 09:07:23
【问题描述】:
尝试从 docker 文件 dockerize Angular 应用程序
泊坞窗文件
FROM node:12.2.0
WORKDIR /app
COPY package.json /app/package.json
RUN npm install
RUN npm install -g @angular/cli@6.0.8
COPY . /app
EXPOSE 4200
CMD ng serve --host 0.0.0.0
镜像构建成功
然后docker run test:latest 编译成功。现在的问题是 http://localhost:4200/ 不工作,换句话说,应用程序没有显示在浏览器中。
【问题讨论】:
-
试试
docker run -p 4200:4200 test:latest -
我已经这样做了
docker run -p 4200:4201 test:latest,但无法访问,只是想知道为什么在附加相同的端口时它会起作用? -
是不是因为docker文件里有
EXPOSE 4200这个命令? -
端口映射的模式是
HOST:CONTAINER。在容器上,角度应用程序在 4200 而不是 4201 上运行。使用-p 4200:4201,您将容器的端口 4201(没有服务在那里运行)映射到主机的端口 4200。EXPOSE指令更像是一个文档功能,通知其他人您的图像的服务正在运行在指定的端口上。 -
注意:cmets是用来解释事情的,而不是用英文重写代码。您在这里拥有的 cmets 比坏还差——它们需要时间来维护,但没有任何价值。您不能争辩说它们是为非技术读者理解 dockerfile 的,因为不了解 dockerfiles 的人不会使用此代码,如果有的话,会有比这些更好的方法来了解正在发生的事情厘米。我已将它们从问题中删除,因为它们妨碍了代码的可读性。
标签: angular docker dockerfile