2
我有一個gitlab安裝,並且正在嘗試使用docker執行程序設置gitlab-runner。一切OK,直到測試開始運行,然後因爲我的項目是私人的,他們有沒有啓用HTTP訪問,他們無法在克隆時間:獲取gitlab-runner 10.0.2使用ssh克隆repo
Running with gitlab-runner 10.0.2 (a9a76a50)
on Jupiter-docker (5f4ed288)
Using Docker executor with image fedora:26 ...
Using docker image sha256:1f082f05a7fc20f99a4ccffc0484f45e6227984940f2c57d8617187b44fd5c46 for predefined container...
Pulling docker image fedora:26 ...
Using docker image fedora:26 ID=sha256:b0b140824a486ccc0f7968f3c6ceb6982b4b77e82ef8b4faaf2806049fc266df for build container...
Running on runner-5f4ed288-project-5-concurrent-0 via 2705e39bc3d7...
Cloning repository...
Cloning into '/builds/pmatos/tob'...
remote: Git access over HTTP is not allowed
fatal: unable to access 'https://gitlab.linki.tools/pmatos/tob.git': The requested URL returned error: 403
ERROR: Job failed: exit code 1
我已經調查https://docs.gitlab.com/ee/ci/ssh_keys/README.html ,決定給它一個嘗試,所以我.gitlab-ci.yml
打頭:
image: fedora:26
before_script:
# Install ssh-agent if not already installed, it is required by Docker.
# (change apt-get to yum if you use a CentOS-based image)
- 'which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)'
# Run ssh-agent (inside the build environment)
- eval $(ssh-agent -s)
# Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
- ssh-add <(echo "$SSH_PRIVATE_KEY")
# For Docker builds disable host key checking. Be aware that by adding that
# you are suspectible to man-in-the-middle attacks.
# WARNING: Use this only with the Docker executor, if you use it with shell
# you will overwrite your user's SSH config.
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
... JOBS...
我設置了SSH_PRIVATE_KEY正確等,但問題是,該項目的克隆before_script
之前發生。然後我嘗試用-v /home/pmatos/gitlab-runner_ssh:/root/.ssh
啓動容器,但仍克隆試圖使用HTTP
。我如何強制容器通過SSH克隆?
不幸的是,這是不可能的,因爲每次'gitlab-runner'開始一個新的管道構建時都會創建一個新的容器。 –