GitlabのCI/CD機能を使用したパイプラインの実行手順を記載します。
事前準備
事前にGitlabでCI/CD用の新規プロジェクトを作成しておきます。
ローカルにクローンしておきます。
プロジェクト用のディレクトリを作成しておきます。
$ mkdir -p /home/work/ci-test
$ cd /home/work/ci-test
$ git clone http://192.168.9.10:2080/root/ci-test.git
docker-composeファイルの作成、起動
ワークディレクトリを作成して、以下docker-composeファイルを作成します。
その後、up -dでビルド、起動まで行います。
$ mkdir /home/gitlab-runner
$ cd /home/gitlab-runner
$ vi docker-compose.yaml
-------------
version: '3'
services:
runner:
image: gitlab/gitlab-runner:v13.12.0
↑↑バージョンはgitlabと合わせる
tty: true
container_name: docker-executor
restart: always
environment:
- REGISTER_NON_INTERACTIVE=true
- CI_SERVER_URL= "192.168.9.10:2080/"
- REGISTRATION_TOKEN= "xxxxxxxxxxxxxxxxx"
↑↑Specific runnersのRegistration tokenを記述
- RUNNER_EXECUTOR=docker
- RUNNER_TAG_LIST=docker
- RUNNER_NAME=Docker Executor (Docker socket building)
- RUNNER_LIMIT=1
- DOCKER_IMAGE=docker:latest
- DOCKER_VOLUMES=/var/run/docker.sock:/var/run/docker.sock
volumes:
- /srv/gitlab-runner/config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
-------------
REGISTRATION_TOKENは以下に記載されています。
- gitlabのGUIコンソールにログイン
- Settings->CI/CD
- Specific runners箇所の「And this registration token」
コンテナの立ち上げ
docker-ompose.yamlのあるフォルダで以下を実行します。
$ sudo docker-compose up -d
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5f8dd5b296b2 gitlab/gitlab-runner:v13.12.0 "/usr/bin/dumb-init …" 8 minutes ago Up 8 minutes docker-executor
c9b986113e7d gitlab/gitlab-ee:13.10.2-ee.0 "/assets/wrapper" 3 days ago Up 2 days (healthy) 80/tcp, 443/tcp, 0.0.0.0:2080->2080/tcp, :::2080->2080/tcp, 0.0.0.0:2022->22/tcp, :::2022->22/tcp gitlab_web_1
コンテナがUpの状態となっていることを確認します。
runnerの登録
コンテナに入り、runnerを登録します。
$ sudo docker exec -it docker-executor bash
# gitlab-runner register
# cat /etc/gitlab-runner/config.toml
config.tomlが作成されていることを確認
register時にエラー
ERROR: Registering runner… error runner=”GsviNnx status=parse “192.168.9.10:2080/”/api/v4/: first path segment in URL cannot contain colon
PANIC: Failed to register the runner. You may be having network problems.