使用Jenkins文件时如何在Docker容器中签出存储库?

时间:2017-06-25 07:43:28

标签: jenkins jenkins-pipeline jenkins-docker

我目前设法设置一个Jenkins文件来在容器内运行我的PHP分析。这是它的要点:

node {
    stage "Prepare environment"
        checkout scm
        def environment  = docker.build 'platforms-base'

        environment.inside {
            stage "Update Dependencies"
                sh "composer install || true"
        }
}

当它运行时,似乎将repo签出到主机上,并且该目录被挂载到/app目录中的docker容器中。 (我没有找到任何配置,因此我不确定它的定义。)

在同一个容器中,我在/var/magento2目录中安装了Magento2。我需要在Magento2代码库的范围内运行一些测试。这意味着我需要将当前分支签出到/var/magento2/vendor/myorg/mypackage/容器中的特定目录,但签出的仓库似乎位于/app

如何在容器内的某个地方结帐回购?

1 个答案:

答案 0 :(得分:1)

/app将被安装在您的容器中,因为您(或您正在使用的Dockerfile)将当前目录安装为/app

现在,您的代码已经已经被Jenkins检出,所以我不会在docker容器内部进行单独的额外检查。 Jenkins刚刚用适当的凭据检查了正确的分支/主/标签,所以不需要自己动手。

您有三个基本选择:

  • 将当前目录挂载为/app,而不是/var/magento2/vendor/myorg/mypackage/

  • 将当前目录安装为/app/var/magento2/vendor/myorg/mypackage/。您甚至可以使用额外的命令行选项而不是修改Dockerfile来执行此操作。 (这在很大程度上取决于您的开发设置)。

  • /var/magento2/vendor/myorg/mypackage/设为/app的符号链接,这也可能有用。