你能改变节点层的CMD - Docker吗?

时间:2016-09-22 08:46:09

标签: node.js docker dockerfile

我是码头工人的新手所以我不确定是否有更简单的方法可以解决这个问题。我想使用节点泊坞窗层作为我的基础层,默认情况下,只有dockerfile中的CMD设置为CMD ["npm", "start]。无论如何都要改变这个初始的CMD?

变更原因: 我有一个特定的启动脚本来启用生产模式,我希望保持我的设置相同。

FROM node:6.6.0

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

ONBUILD ARG NODE_ENV
ONBUILD ENV NODE_ENV $NODE_ENV
ONBUILD COPY package.json /usr/src/app/
ONBUILD RUN npm install
ONBUILD COPY . /usr/src/app

CMD [ "npm", "start" ]

2 个答案:

答案 0 :(得分:2)

是的,只需在docker run结束时键入要运行的命令。

docker run <yourimage> <yourcommand>

答案 1 :(得分:2)

或者您可以从基础创建新图像,只需指定一个新的CMD:

var regex = new RegExp(/(?:(?<=\s)|^)@(\S+)/g);

构建图像时,可以直接运行它,而无需在最后添加新命令。当基础图像发生变化时,只需重建你的图像,你就可以获得所有的更新。