Docker 云服务因找不到脚本而停止

Docker cloud services stop with script not found

我一直在尝试使用 docker 云堆栈部署我的应用程序。我已经在本地对此进行了测试,并且还使用 docker-compose 进行了测试,并且它们成功运行。

但是,当我尝试从我的 docker 存储库中使用 docker 云堆栈的注册表部署我的 docker 容器时,它总是以以下代码停止。

[app-1]2018-02-10T06:09:03.316866500Z script not found : /src/dist/index.js

[app-1]2018-02-10T06:09:03.317330400Z Exiting PM2

[app-1]2018-02-10T06:09:03.442521200Z 0 application online, exiting

[app-1]2018-02-10T06:09:03.442686000Z Exiting PM2

我尝试将 src/dist/index.js 设置为 dist/index.js 并尝试了很多其他方法,其中 none 对我有用。

我的 Dockerfile 如下所示。

FROM dooboolab/ubuntu-nodejs-ffmpeg-sharp:latest

WORKDIR /src
COPY package*.json ./

# RUN npm install
RUN npm install --only=production

# If you are building your code for production

# Bundle app source
ADD . /src

EXPOSE 3000
CMD ["pm2-docker", "/dist/index.js"]

我的堆栈文件很简单,如下所示。 应用程序: 环境: - NODE_ENV=生产 图片:'my_private_image:latest' 端口: - '3000:3000'

同样,当我在本地计算机上从 docker 存储库构建容器时,my_private_image:latest 工作正常。

我还能尝试什么来解决这个问题?

我找到解决办法了。 这是因为在本地,它引用的是相对路径。 但是,当 运行 来自 docker 堆栈时,它来自绝对路径 运行,因此路径不同。

为了从 docker-stack 成功构建,我必须在图像中设置绝对路径并构建它。