首页 > 解决方案 > 如何在dockerfile中放置双&符号

问题描述

我写了一个dockerfile如下。

FROM mhart/alpine-node:12.18.3
WORKDIR /usr/app
COPY package.json
RUN yarn install
EXPOSE 8000
CMD ["yarn", "start"]

这很好用。但我想以 & 符号开始运行纱线。例如,我可以在 .sh 之后运行 yarn start。

bash some.sh && yarn start

因此,如果在“some.sh”中发生错误,则不会执行“yarn start”。
如何将此选项放在 dockerfile 中?感谢您阅读。

标签: node.jsdocker

解决方案


如果 'some.sh' 中发生错误,则不会执行 'yarn start'。

你必须选择

  • 忽略是否​​发生错误some.sh
  • yarn start如果发生错误,请不要运行some.sh

对于第一个选项

CMD ["sh", "-c","./some.sh ; yarn start"]

即使some.sh以状态码退出,这也会忽略1

第二个选项,yarn start 如果 some.sh exit with1则不运行,否则运行。

CMD ["sh", "-c","./some.sh && yarn start"]

推荐阅读