2019/04/04現在の情報
この記事では、Docker-composeでGitlabを構築する方法を紹介します。
環境
実機のOSにCentOS7
その上にOpenVzでCentOS7コンテナ
そのコンテナの中にDockerEngine
OpenVzのCentOS7コンテナが実機という認識で大丈夫です。
実機
CentOS Linux release 7.3.1611 (Core)
OpenVz:3.10.0-862.11.6.vz7.64.7
仮想PC
CentOS Linux release 7.2.1511 (Core)
Docker:Docker version 1.13.1, build b2f74b2/1.13.1
メモリ4G
cpu:Intel(R) Xeon(R) CPU X3480 @ 3.07GHz, 8 cores
参考
(準備)Docker-composeのインストール
まずはDocker-composeを使えるようにインストール
# curl -L https://github.com/docker/compose/releases/download/1.9.0/run.sh > /usr/local/bin/docker-compose # chmod +x /usr/local/bin/docker-compose
コンテナの立ち上げ
作業フォルダを決めます(任意)
今回は「/home/GitLab/」にしました。
作業ファルダに移動します
# cd /home/GitLab/
作業ファルダに「docker-compose.yml」をダウンロード
# wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
ダウンロードした「docker-compose.yml」を編集します
たくさん記述がありますが変更するのは3か所
- TZ=Asia/Kolkata - GITLAB_PORT=10080 - GITLAB_SSH_PORT=10022
上記を下記に変更します
- TZ=Asia/Tokyo - GITLAB_PORT=80 - GITLAB_SSH_PORT=22
記事の下に書き換えたソースを貼ってあります!
作業フォルダでdocker-composeコマンドを実行
オプション(-d)でバックグラウンド実行
# docker-compose up -d gitlab_postgresql_1 is up-to-date gitlab_redis_1 is up-to-date Recreating gitlab_gitlab_1
起動しているかの確認
STATUS が「Up ?? seconds」になっているので立ち上がっています
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 464df2ec082c sameersbn/gitlab:11.9.1 "/sbin/entrypoint...." 37 seconds ago Up 34 seconds 443/tcp, 0.0.0.0:10022->22/tcp, 0.0.0.0:10080->80/tcp gitlab_gitlab_1 8699d7e4faad sameersbn/redis:4.0.9-1 "/sbin/entrypoint...." 43 seconds ago Up 39 seconds 6379/tcp gitlab_redis_1 bf0c032db125 sameersbn/postgresql:10 "/sbin/entrypoint.sh" 57 seconds ago Up 55 seconds 5432/tcp gitlab_postgresql_1
GitLabが起動するまでしばらく時間がかかるのでログを確認
# docker logs gitlab_gitlab_1 -f ~~~~~~~~~~(略)~~~~~~~~~~~~ 2019-04-04 17:21:40,400 INFO success: gitaly entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2019-04-04 17:21:40,400 INFO success: sidekiq entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2019-04-04 17:21:40,400 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2019-04-04 17:21:40,402 INFO success: gitlab-workhorse entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2019-04-04 17:21:40,403 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2019-04-04 17:21:40,404 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2019-04-04 17:21:40,405 INFO success: sshd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
このような表記になってから5分程度かかります
5分経ったら
自分のIP:10080
へアクセス!
最初にROOTパスを決めます。
GitLab Runnerのセットアップ
作業フォルダを決めます(任意)
今回は「/home/GitLabRunner/」にしました。
作業フォルダに「docker-compose.yml」を作成します。
version: '2' services: runner: restart: always image: gitlab/gitlab-runner:latest volumes: - /home/docker/gitlab_ci/runner:/etc/gitlab-runner - /var/run/docker.sock:/var/run/docker.sock
作業ファルダに移動し実行する
# cd /home/GitLabRunner/ # docker-compose.yml
これでGitLab Runnerが起動します。
確認
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b667662badfe sameersbn/gitlab:11.9.5 "/sbin/entrypoint...." 17 minutes ago Up 17 minutes 0.0.0.0:80->80/tcp, 443/tcp, 0.0.0.0:10022->22/tcp gitlab_gitlab_1 68011a461769 sameersbn/redis:4.0.9-1 "/sbin/entrypoint...." 17 minutes ago Up 17 minutes 6379/tcp gitlab_redis_1 f1469d300401 sameersbn/postgresql:10 "/sbin/entrypoint.sh" 17 minutes ago Up 17 minutes 5432/tcp gitlab_postgresql_1 eddc610e1b53 gitlab/gitlab-runner:latest "/usr/bin/dumb-ini..." 19 hours ago Up 19 hours gitlab_runner
起動していたら、dockerコマンドで GitLabRunnerの設定をする。
GitLabを開き、
Admin Area
Overview → Runners
赤丸でまるをしているところが
URL
トークン
# docker exec -it gitlab_runner gitlab-runner register \ --url [URL] \ --registration-token [トークン] \ --name test01 \ --tag-list tags \ --executor docker \ --docker-image alpine:latest
上から
1.URL
2.トークン
3.Runner名
4.タグ
5.実行環境
6.dockerイメージ
情報を入力後実行
対話で質問されるが
全て空白でOK
以上でGitLab Runnerが起動しました。
version: '2' services: redis: restart: always image: sameersbn/redis:4.0.9-1 command: - --loglevel warning volumes: - /srv/docker/gitlab/redis:/var/lib/redis:Z postgresql: restart: always image: sameersbn/postgresql:10 volumes: - /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z environment: - DB_USER=gitlab - DB_PASS=password - DB_NAME=gitlabhq_production - DB_EXTENSION=pg_trgm gitlab: restart: always image: sameersbn/gitlab:11.9.5 depends_on: - redis - postgresql ports: - "10080:80" - "10022:22" volumes: - /srv/docker/gitlab/gitlab:/home/git/data:Z environment: - DEBUG=false - DB_ADAPTER=postgresql - DB_HOST=postgresql - DB_PORT=5432 - DB_USER=gitlab - DB_PASS=password - DB_NAME=gitlabhq_production - REDIS_HOST=redis - REDIS_PORT=6379 - TZ=Asia/Tokyo - GITLAB_TIMEZONE=Kolkata - GITLAB_HTTPS=false - SSL_SELF_SIGNED=false - GITLAB_HOST=localhost - GITLAB_PORT=80 - GITLAB_SSH_PORT=22 - GITLAB_RELATIVE_URL_ROOT= - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_ROOT_PASSWORD= - GITLAB_ROOT_EMAIL= - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true - GITLAB_NOTIFY_PUSHER=false - GITLAB_EMAIL=notifications@example.com - GITLAB_EMAIL_REPLY_TO=noreply@example.com - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com - GITLAB_BACKUP_SCHEDULE=daily - GITLAB_BACKUP_TIME=01:00 - SMTP_ENABLED=false - SMTP_DOMAIN=www.example.com - SMTP_HOST=smtp.gmail.com - SMTP_PORT=587 - SMTP_USER=mailer@example.com - SMTP_PASS=password - SMTP_STARTTLS=true - SMTP_AUTHENTICATION=login - IMAP_ENABLED=false - IMAP_HOST=imap.gmail.com - IMAP_PORT=993 - IMAP_USER=mailer@example.com - IMAP_PASS=password - IMAP_SSL=true - IMAP_STARTTLS=false - OAUTH_ENABLED=false - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER= - OAUTH_ALLOW_SSO= - OAUTH_BLOCK_AUTO_CREATED_USERS=true - OAUTH_AUTO_LINK_LDAP_USER=false - OAUTH_AUTO_LINK_SAML_USER=false - OAUTH_EXTERNAL_PROVIDERS= - OAUTH_CAS3_LABEL=cas3 - OAUTH_CAS3_SERVER= - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false - OAUTH_CAS3_LOGIN_URL=/cas/login - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate - OAUTH_CAS3_LOGOUT_URL=/cas/logout - OAUTH_GOOGLE_API_KEY= - OAUTH_GOOGLE_APP_SECRET= - OAUTH_GOOGLE_RESTRICT_DOMAIN= - OAUTH_FACEBOOK_API_KEY= - OAUTH_FACEBOOK_APP_SECRET= - OAUTH_TWITTER_API_KEY= - OAUTH_TWITTER_APP_SECRET= - OAUTH_GITHUB_API_KEY= - OAUTH_GITHUB_APP_SECRET= - OAUTH_GITHUB_URL= - OAUTH_GITHUB_VERIFY_SSL= - OAUTH_GITLAB_API_KEY= - OAUTH_GITLAB_APP_SECRET= - OAUTH_BITBUCKET_API_KEY= - OAUTH_BITBUCKET_APP_SECRET= - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL= - OAUTH_SAML_IDP_CERT_FINGERPRINT= - OAUTH_SAML_IDP_SSO_TARGET_URL= - OAUTH_SAML_ISSUER= - OAUTH_SAML_LABEL="Our SAML Provider" - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient - OAUTH_SAML_GROUPS_ATTRIBUTE= - OAUTH_SAML_EXTERNAL_GROUPS= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME= - OAUTH_CROWD_SERVER_URL= - OAUTH_CROWD_APP_NAME= - OAUTH_CROWD_APP_PASSWORD= - OAUTH_AUTH0_CLIENT_ID= - OAUTH_AUTH0_CLIENT_SECRET= - OAUTH_AUTH0_DOMAIN= - OAUTH_AZURE_API_KEY= - OAUTH_AZURE_API_SECRET= - OAUTH_AZURE_TENANT_ID=
コメント