〇実現したいこと
プロキシ環境内でDockerを使用してgitlab-ce,gitlab-runnerを起動し、gitへのpushリクエストをトリガーに
Docker socket bindingにより、ホスト上のイメージを利用して、Dockerをホスト上で起動してテスト。
という流れを作りたいのですが、runnerがDockerを起動できません。
何か根本的に勘違いしている可能性もあります。
宜しくお願い致します。
以下、XXXXXはホストマシンのドメイン名で、YYYYYはプロキシのドメイン名です。
〇環境
Ubuntu : 18.04.2 LTS (Bionic Beaver)
Docker : 18.09.3
- gitlab/gitlab-ce : latest
- gitlab/gitlab-runner : latest
- docker : stable
〇Jobsのエラーメッセージ
Running with gitlab-runner 11.9.0 (692ae235) on My Docker Runner 1EKgmzep Using Docker executor with image docker:stable-git ... Starting service docker:stable-dind ... Using docker image sha256:b90ec7b4590e2638ed18d0afff2467a5eea36947c69439a188ed67c3d47e2ef2 for docker:stable-dind ... Waiting for services to be up and running... Using docker image sha256:9be5c3cd302ca36143bcd5cc02e5d973ea8f9ebe32f39d6fd36f2dd8d8942840 for docker:stable-git ... Running on runner-1EKgmzep-project-1-concurrent-0 via 5aa8213698cb... DEPRECATION: this GitLab server doesn't support refspecs, gitlab-runner 12.0 will no longer work with this version of GitLab Cloning repository... Cloning into '/builds/1EKgmzep/0/gitlab/example/test001'... Checking out 825a868b as master... Skipping Git submodules setup $ # Auto DevOps variables and functions # collapsed multi-line command $ setup_docker $ build Logging to GitLab Container Registry with CI credentials... WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) ERROR: Job failed: exit code 1
〇手順
#####・Docker設定
vi docker-compose.yml
version: '3' services: gitlab: image: 'gitlab/gitlab-ce:latest' restart: always container_name: gitlab hostname: 'XXXXX' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://XXXXX:10080/gitlab/' gitlab_rails['time_zone'] = 'Asia/Tokyo' ports: - '10080:10080' - '10443:443' - '10022:22' volumes: - '/gitlab/config:/etc/gitlab' - '/gitlab/logs:/var/log/gitlab' - '/gitlab/data:/var/opt/gitlab' gitlab-runner: image: 'gitlab/gitlab-runner:latest' restart: always tty: true container_name: gitlab-runner environment: - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTP_PROXY} - NO_PROXY=${NO_PROXY} volumes: - '/gitlab/runner:/etc/gitlab-runner' - '/var/run/docker.sock:/var/run/docker.sock'
・ホスト環境変数
export HTTP_PROXY=http://YYYYY:3128/ export HTTPS_PROXY=http://YYYYY:3128/ export NO_PROXY=docker:2375,docker:2376
#####・起動
docker-compose up -d
#####・URLとtokenの取得
GitLabにアクセス
一般ユーザーアカウント作成、ログイン
一般ユーザーでグループ作成(example)
グループにプロジェクト作成(test001)
プロジェクト内のSettings → CI/CD → Runners
記載されているURLとtokenをコピー
URL:http://XXXXX:10080/gitlab/
token:tKd3dQz6KXCzakTkQRnG
#####・事前にテスト環境のイメージをダウンロード
docker pull docker:stable
#####・Runnerの環境設定
docker exec -it gitlab-runner gitlab-runner register -n \ --url http://XXXXX:10080/gitlab/ \ --registration-token tKd3dQz6KXCzakTkQRnG\ --executor docker \ --description "My Docker Runner" \ --docker-pull-policy "never" \ --docker-image "docker:stable" \ --docker-privileged \ --docker-volumes "/var/run/docker.sock:/var/run/docker.sock" \ --docker-volumes "/builds:/builds"
#####・連携を確認
GitLabにアクセス
プロジェクト内のSettings → CI/CD → Runnersに以下があることを確認
Runners activated for this project 1EKgmzep #1 My Docker Runner
を確認
#####・GitLab上のRunnerの設定
[Checked] Paused Runners don't accept new jobs
[Not checked] This runner will only run on pipelines triggered on protected branches
[Checked] Indicates whether this runner can pick jobs without tags
[Checked] When a runner is locked, it cannot be assigned to other projects
Tags は空
#####・gitに.gitlab.ymlを作成
☆とりあえず超シンプルな設定にします。
cd /gitlab/data/git-data/repositories/example/test001.git
vi .gitlab.yml
image: docker:stable - test example: stage: test script: - ls
#####・gitをpush
一般ユーザーアカウントにて
git clone http://XXXXX:10080/gitlab/example/test001.git
cd test001
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
gitlabのページで確認すると上記のエラー
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。