0

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

但是,当我尝试从我的注册表中部署我的 docker 容器时,该容器位于我的 docker repo 和 docker cloud stack 中,它总是以下面的代码停止。

[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.jsdist/index.js

我的 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'

同样,my_private_image:latest当我在本地机器上从 docker repo 构建容器时,它工作得很好。

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

4

1 回答 1

0

我找到了解决方案。这是因为在本地,它引用的是相对路径。但是,当从 docker stack 运行时,它是从绝对路径运行的,因此路径不同。

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

于 2018-02-10T23:59:48.817 回答