0

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

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

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

当它运行时,似乎 repo 已签出到主机上,并且该目录已安装到目录中的 docker 容器中/app。(我还没有找到任何配置,所以我不确定这是在哪里定义的。)

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

如何在容器内的某个位置签出 repo?

4

1 回答 1

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这也可能有效。

于 2017-06-26T08:16:11.923 回答