代码存储在/var/www/abc -- "CodePath“中。
在运行gitlab (runner)时,代码通过/home/gitlab-runner/builds/4v8bC1n9/0/_gitlabgroup_/_gitprojectname_/abc -- "RealPath“调用。
我正在使用本地运行程序和shell执行程序。
当我在我的php代码中使用realpath()函数时,它仍然在使用gitlab运行程序时显示"CodePath“,而不是"RealPath”。
如何将"RealPath“集成到我的代码中,或者使用reconfig GitLab来代替"CodePath”?
发布于 2019-07-26 14:59:21
由于madflow提到了变量,我设法找出了以下内容:
运行程序特定的配置文件存在,可以配置为在此描述
我需要做这些事:
在[runners.custom_build_dir]中指定启用config.toml节
[[runners]]
builds_dir = "/var/www/abc"
[runners.custom_build_dir]
enabled = true(布尔,而不是引号)在yml中指定一个变量
variables:
GIT_CLONE_PATH: $CI_BUILDS_DIR/在os级别上,为所需的dir设置了一些权限设置,我在本地机器上进行了快速和肮脏的777操作。
发布于 2019-07-25 12:35:42
运行器cli选项记录在这里:https://docs.gitlab.com/runner/executors/shell.html#overview
运行作业和将源克隆到的路径在环境变量中可用:
CI_PROJECT_DIR
克隆存储库和运行作业的完整路径。如果设置了GitLab Runner builds_dir参数,则该变量将相对于builds_dir的值设置。有关更多信息,请参见GitLab运行程序的高级配置。
你没有说明你如何使用realpath(path).
虽然必须提供路径,但值可以是空字符串。在这种情况下,该值被解释为当前目录。
也许你在某个地方硬编码了chdir('/var/www/abc');?
在调用realpath()之前执行chdir(getenv('CI_PROJECT_DIR'));时,它应该使用CI目录。假设您使用的是没有参数的realpath。
另外:也许您可以对当前目录进行一些更改,并使用内置的常量之一:https://www.php.net/manual/en/language.constants.predefined.php
https://stackoverflow.com/questions/57166128
复制相似问题