我想在一个docker容器中运行一个angular应用程序,在开发模式下,当我做出更改时,它们可能会在本地Web上自动生成。我尝试了各种配置,但我无法连接到端口4200。
停靠文件:
# Dockerfile
FROM node:14.17.1-alpine
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
COPY package-lock.json ./
# Instalamos angular cli en nuestra imágen
RUN npm install -g @angular/cli && npm cache clean
EXPOSE 4200
CMD ["npm", "start"]
构成档案:
frontend:
build: ./frontend
ports:
- "4200:4200"
container_name: frontend
volumes:
- "./frontend:/app"
- "/app/node_modules"
- "/etc/localtime:/etc/localtime:ro"
environment:
- CHOKIDAR_USEPOLLING=true
当我运行Docker容器时,它启动得很好。但是当我尝试从浏览器访问localhost:4200时,我得到错误“无法到达此站点”
1条答案
按热度按时间nimxete21#
您的Angular应用程序可能默认 * 绑定 * 到localhost,这意味着它只接受来自容器内部的连接。
在package.json文件中,
start
脚本可能被定义为ng serve
。它需要是ng serve --host 0.0.0.0
。这将允许应用接受来自容器外部的连接。如果启动脚本不是
ng serve
,那么请编辑您的帖子并将package.json文件的内容添加到其中。