【问题标题】:Docker run status=exited issueDocker 运行状态=已退出问题
【发布时间】:2022-01-10 13:06:25
【问题描述】:

我正在创建以下 Dockerfile:

FROM node:current-alpine as builder
COPY /webapp/public/* public/
COPY /webapp/src/* src/
COPY package.json package.json
COPY package-lock.json package-lock.json

RUN set NODE_OPTIONS=--openssl-legacy-provider
RUN npm install
CMD ["npm","start"]

EXPOSE 80

基于此directory

我从 docker 日志中得到以下输出:/src/App.js 未找到模块:无法解析“/src”中的“./Configure/ConfigurationPage”。配置页面是位于here 的文件。这是什么原因造成的?

【问题讨论】:

  • 您没有为您的图像配置任何 CMD 和/或 ENTRYPOINT。它使用基础镜像中的默认命令:即node。由于这是一个交互式命令(即需要 -it 选项),而且我猜您是在后台启动图像(即使用 -d),因此您的容器会在命令启动后立即退出。
  • @Zeitounator 容器在分离模式下运行,但是当我尝试 docker run -dt -i -p 3000:80 scatool 时,我仍然无法连接到 localhost:3000。知道为什么吗?
  • 我的想法是,关于这种新情况的信息太少,不能冒险猜测它。查看您的日志,连接到您正在运行的容器并确保所有预期的进程都已启动,检查端口是否已打开......并edit您的问题与您的发现。
  • 不是节点专家,但我真的很想知道如果你只依赖基础镜像中的 node 命令,它会打开一个 nodejs 控制台,那么你的节点应用程序如何在你的容器中运行。您不应该在 Dockerfile 中添加一些 CMD 以使用容器启动您的应用程序吗?
  • @Zeitounator 我更新了我的问题

标签: node.js docker


【解决方案1】:

这是意料之中的,因为没有任何东西为您保留进程或终端。 (通过CMDENTRYPOINT)。

为了能够使用您当前的图像启动容器,请尝试使用-dt 开关,该开关“工作”为Detached Terminal

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2015-04-30
    • 1970-01-01
    相关资源
    最近更新 更多