【问题标题】:How can I specify a startscript for my dockercontainer in Jenkins(Pipeline)?如何在 Jenkins(Pipeline) 中为我的 dockercontainer 指定启动脚本?
【发布时间】:2018-05-01 01:56:14
【问题描述】:

我已将我的 Jenkins 配置为在 docker 容器中运行我们的构建作业和功能测试。例如,当我单击“立即构建”按钮时,Jenkins 将构建 Git 中的 Dockerfile 并运行容器,以便可以在此容器中完成构建步骤(Jenkinsfile)。

我现在的问题是:如何在 Jenkins-Pipeline 中为我的容器指定启动脚本? 感谢您的任何提示。

【问题讨论】:

  • Dockerfile 中的 COPY startscript.sh /var/startscript.shCMD /var/startscript.sh 怎么样?
  • 谢谢。但这会将 startscript.sh 复制到容器的文件系统中。我想在容器启动时运行这个脚本。
  • 是的,这是通过CMD /var/startscript.sh 完成的。如果你不想复制脚本,你也可以在运行时通过docker run -v /path/to/my/script:/var myimage /var/script.sh挂载它
  • 这取决于您使用的插件。例如,如果您使用Docker Pipeline Plugin,则为may not be able to use ENTRYPOINT because of how containers are provisioned

标签: docker jenkins dockerfile jenkins-pipeline docker-container


【解决方案1】:

您可以在 Jenkins 管道中将字符串(即 startscript 名称)作为 input parameter 传递,以便有条件地指定要运行的脚本。

然后您可以在运行时在您的 jenkins 管道配置中挂载相应的脚本。

docker run -v /path/to/script:/var imageName /var/${START_SCRIPT}.sh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多