git - Gitlab CI运行程序无法在docker executor上共享构建源

标签 git docker gitlab-ci gitlab-ci-runner

我尝试在docker上共享构建源(并在其上使用git fetch),但他总是在每次运行时都运行git clone(是的,我已将其配置为在CI / CD Pipelines设置中使用git fetch)。

我只想使用composer更新脚本运行构建阶段,并使用phing(phpunit,...)运行测试阶段。在构建阶段,一切正常(除了git clone),在测试阶段,他没有使用以前使用的相同源,而是再次克隆了源...

我知道我需要与docker容器共享我的卷,但是我不知道如何使用gitlab CI来共享它!

我的conf:.gitlab-ci.yml

image: webdevops/php:centos-7-php7

stages:
  - build
  - test

build:
  script:
    - composer --working-dir=/builds/MyGroup/MyProject update

test:
  script:
    - php /builds/MyGroup/MyProject/vendor/bin/phing

编辑:经过一天的搜索,我终于找到了这个文档:https://docs.gitlab.com/runner/executors/docker.html#the-persistent-storage
现在工作正常。

谢谢大家

最佳答案

除了您找到的解决方案之外,我还在这种情况下使用 Artifact (在Gitlab.com中使用共享运行器)。生成src,将其推送到Gitlab并在后续的生成步骤中下载文件。

build:
  environment: production
  stage: build
  image: image_used_for_builds
  script:
    - # steps to build
  artifacts:
     name: "myapplication-${CI_BUILD_REF_NAME}-${CI_BUILD_ID}-production"
     paths:
      - vendor/src
      - run.whatever
     when: on_success


# this step will download the preivous created files to deploy them
  deploy:
   stage: deploy
   environment: production
   script:
     - run-deploy.sh
   dependencies:
     - build # this will download the artifacts

也许有人觉得这个例子有用!

关于git - Gitlab CI运行程序无法在docker executor上共享构建源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124024/

相关文章:

git - 为什么分支名称不能在开头包含 'hash' (#) 字符?

windows - 如何在 Dockerfile 中执行 CMD Powershell 脚本

docker - 为什么Docker compose需要太长时间才能在Windows中构建?

docker - docker容器如何在Mesos/Marathon设置中进行通信

docker - 在 Gitlab CI 构建中使用 Docker 调用 tcp i/o 超时

Git Bash 无法将目录更改为文档文件夹

gitlab letencrypt http_authorization 错误

git - 我可以根据我所在的存储库有条件地激活 Git 提示符吗?

gitlab - [Gitlab]在哪里可以找到托管在我的私有(private) Gitlab 实例上的 Gitlab 页面?

amazon-web-services - 无法通过 Terraform 在 Gitlab 中为 AWS Lambda Fx 创建 Zip 文件