我目前设法设置一个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
。
如何在容器内的某个地方结帐回购?
答案 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
的符号链接,这也可能有用。