我试着将一个Angular应用程序对接。我尝试了两个不同的Dockerfile,因为我无法运行这个。我尝试的第一个文件:
FROM node:latest as node
WORKDIR /app
COPY . .
RUN npm install
EXPOSE 4200
RUN npm run build --prod
FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=node /app/dist/front-end-blog-demo /usr/share/nginx/html
第二个文件(实际文件):
FROM node:16-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
CMD ["npm", "start"]
我用以下代码构建它:docker build -t mydhid/project .推了推,然后用:docker run -p 4200:4200 -d mydhid/project似乎听起来很好,一切都很好,但当我转到localhost:4200时,它没有显示任何内容。这是真正监听的端口:x1c 0d1x这是docker桌面日志:
这是docker ps命令:
一切似乎都很好,但仍然(与两个dockerfile图像)我看不到任何显示在我的localhost:4200..我尝试了所有这一切与另一个端口,3000,但同样的问题,一切看起来很好,但没有显示任何东西。我该怎么办?昨天它工作了,今天我尝试Docker compose来运行前端和后端,从今天开始似乎什么都不工作。我100%的应用程序工作正常,因为当我从终端运行它:ng serve -o它打开我的localhost:4200和我的登录页面
1条答案
按热度按时间vlurs2pr1#
我解决了不知道为什么,但我使用Docker容器内的端口80让它工作。我的本地主机上的端口仍然是4200,但容器内部是80,所以我这样运行容器:
docker run -p 4200:80 -d mydhid/project
我想我也改变了dockerfile中的一些东西,这是我现在正在使用的一个,如果它能有所帮助:
我又试了一次运行它为4200:4200,它不工作。看来Docker端口必须是强制性的80