【问题标题】:Docker build of strapi image not completing, stuck at localhost addressDocker 构建的 Strapi 映像未完成,卡在 localhost 地址
【发布时间】:2021-09-08 04:00:03
【问题描述】:

我正在尝试使用云托管的 mongodb atlas 数据库创建我的strapi 项目的 docker 映像。下面是我的 dockerfile 代码

FROM strapi/base

COPY ./ ./

RUN npm install

RUN npm run build

RUN npm run start:develop

CMD ["npm","start"]

我正在运行以下代码来构建 docker 文件

docker build .

我没有收到任何错误,但问题是图像构建未完成,它停留在 http://localhost:1337。我该如何解决这个问题?我附上了截图。 TIA :)

【问题讨论】:

    标签: docker dockerfile containers strapi


    【解决方案1】:

    您的RUN npm run start:develop 步骤永远不会结束,因为它正在运行服务器。

    您可以在CMD 中写入该步骤并删除现有的CMD ["npm","start"],或者您可以简单地删除该步骤。这取决于你的情况。

    试试下面的 Dockerfile:

    FROM strapi/base
    
    COPY ./ ./
    
    RUN npm install
    
    RUN npm run build
    
    CMD ["npm","start"]
    

    FROM strapi/base
    
    COPY ./ ./
    
    RUN npm install
    
    RUN npm run build
    
    CMD ["npm"," run", "start:develop]
    

    【讨论】:

    • 感谢您的评论。那我什么时候应该运行 RUN npm run start:develop
    • 我相信npm run start:developnpm start 都会启动你的服务器。所以你应该选择你需要的那个。理想情况下,npm start 用于生产场景,npm run start:develop 用于本地开发。
    • RUN 所发生的任何事情都是构建映像的一部分。你不需要启动服务器。
    • @DavidMaze 所以我不需要写 npm run start:develop inside dockerfile?
    • 但是无论你选择哪个,当容器最终运行时,它应该是镜像的CMD。您不需要 RUN 作为构建的一部分。
    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 2021-09-30
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多