【发布时间】:2020-10-21 06:07:47
【问题描述】:
我有一个 node.js 脚本,当它执行时,它只运行一个进程将两个表从一个数据库复制到另一个数据库。如果我在本地运行它,它应该可以正常工作,所以没有编码问题。 我的问题是,我想将该 node.js 程序放在 docker 映像中,并在需要时执行该映像(和 node.js 脚本)。我创建了图像,但是当我运行它时,它只是说它是在 x 之前执行的,但它并没有执行脚本所做的事情。
谁能解释一下我可以做些什么来完成这个?
步骤是:
- 我需要向 npm 传递一个可选参数,例如:
npm start Initial。 - 我需要能够在容器内做同样的事情:。
我有一个 file.sh 可以做这样的事情:
#!/bin/bash
if [ $1 = "Initial" ]; then
: npm start $1
else
: npm start
fi
但是,当我用这样的东西运行 docker 时:
docker run [image-name] Initial
它没有给我任何错误,但没有执行我的 node.js 脚本。我的 Dockerfile 是这样的:
...
WORKDIR /usr/src/app
RUN npm install
COPY ./ ./
RUN ["chmod", "+x", "/usr/src/app/file.sh"]
ENTRYPOINT ["/usr/src/app/file.sh"]
【问题讨论】:
-
您的图像是否构建?你从哪里得到 RUN 命令的语法? docs.docker.com/engine/reference/run