【问题标题】:Docker container only runs dashboard app on localhost:4200 and when localhost:8080 it display the nginx webpageDocker 容器仅在 localhost:4200 上运行仪表板应用程序,当 localhost:8080 时它显示 nginx 网页
【发布时间】:2022-01-01 06:24:16
【问题描述】:

所以我写了这个 Dockerfile:

FROM node:13-alpine as build

WORKDIR /app

COPY package*.json /app/

RUN npm install -g ionic

RUN npm install

COPY ./ /app/

RUN npm run build

FROM nginx:alpine

RUN rm -rf /usr/share/nginx/html/*

COPY --from=build /app/dist/ /usr/share/nginx/html/

当它运行命令npm run build 时,它将创建Dist 文件夹 倒数第二行将从文件夹nginx/html 中删除内容,最后一行将用Dist 文件夹中的文件替换此文件夹,Index.html 在哪里。

当我运行代码时: docker build -t dashboard-app:v1 . 它创建图像

比我运行代码:docker run --name dashboard-app-container -d -p 8080:80 dashboard-app:v1

当我转到localhost:8080 时,它会显示“NGINX。如果您看到此页面,则表明 nginx Web 服务器已成功安装并正常工作。需要进一步配置”

我不知道我的问题是 docker 无法替换 Dist 文件夹并找到索引 html 还是端口问题。

当我在localhost:4200 上运行它时,我可以看到仪表板应用程序。

有什么建议吗???

提前谢谢你

【问题讨论】:

    标签: docker nginx dockerfile containers localhost


    【解决方案1】:

    确实很难知道您的Dist 文件夹包含什么以及复制到nginx/html/ 位置的内容。

    只要在8080端口得到响应,就说明nginx正在运行,但在nginx/html/文件夹中找不到index.html页面。

    我建议做的是从终端使用以下命令运行 Docker 映像。注意,-d 被删除了,你将能够看到来自容器的日志:

    docker run --name dashboard-app-container -p 8080:80 dashboard-app:v1
    

    在另一个终端使用以下命令连接到图像:

    docker exec -it dashboard-app:v1 sh
    

    这将为容器打开一个外壳。您必须导航到/usr/share/nginx/html 位置并调查其内容。您将能够看到从Dist 文件夹复制的内容,并在之后调整 Dockerfile。

    【讨论】:

    • 你好。当我这样做时,我得到了这个: /usr/share/nginx/html # dir sh: dir: not found 。我认为它是空的,因此无法从 Dist 文件夹中移动文件。我正在尝试弄清楚如何编写 docker 文件。任何想法?谢谢!!
    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 2011-06-27
    • 2016-02-19
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2019-10-19
    相关资源
    最近更新 更多