社内CentOS7にGitlabを立てたやつ
CentOS7 install GitLab by Docker
環境
$ cat /etc/redhat-release $ CentOS Linux release 7.8.2003 (Core) $ arch $ x86_64
Docker, docker-compose のインストール
CentOS7 アップデート
$ yum update $ yum upgrade
<!-- ### 古い Docker のアンインストール
$ yum remove docker docker-client docker-client-latest docker-common docker-engine docker-latest docker-latest-logrotate docker-logrotate $ rm /etc/yum.repos.d/docker.repo
関連パッケージ
$ yum install -y yum-utils device-mapper-persistent-data lvm2
リポジトリの追加
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Docker CE のインストール
$ yum install -y docker-ce docker-ce-cli containerd.io
OS 起動時に、Docker の起動を設定
$ systemctl enable --now docker
Docker コマンドでの sudo を許可
$ sudo usermod -aG docker $USER
※再ログインで反映される。
docker-compose インストール
最新版を Release から確認し、インストール
$ curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-uname -s
-uname -m
> /usr/local/bin/docker-compose
実行権限を付与
$ sudo chmod +x /usr/local/bin/docker-compose
バージョン確認
$ docker-compose version
GitLab 環境の構築
docker-compose.yml の作成
GitLab 用の docker-compose.yml を取得し、任意の場所に作成
以下のファイルが使い勝手が良い。
sameersbn/docker-gitlab
version: "2"services: redis: restart: always image: sameersbn/redis:4.0.9-2 command: - --loglevel warning volumes: - redis-data:/var/lib/redis:Z
postgresql: restart: always image: sameersbn/postgresql:10-2 volumes: - postgresql-data:/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:12.9.2 depends_on: - redis - postgresql ports: - "10080:80" - "10022:22" volumes: - gitlab-data:/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=Tokyo - GITLAB_HTTPS=false - SSL_SELF_SIGNED=false - GITLAB_HOST=localhost - GITLAB_PORT=10080 - GITLAB_SSH_PORT=10022 - 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_AUTH0_SCOPE= - OAUTH_AZURE_API_KEY= - OAUTH_AZURE_API_SECRET= - OAUTH_AZURE_TENANT_ID=
volumes: redis-data: postgresql-data: gitlab-data:
GITLAB_HOST=localhost
の状態だと、clone したい時にサイト上のパスが localhost で表示されるので
IP アドレスもしくは、ホスト名に変更が必要
ファイアーウォールの設定変更
$ sudo firewall-cmd --add-port=10080/tcp --zone=public --permanent $ sudo firewall-cmd --reload
docker-compose による起動
$ docker-compose up -d //開始 $ docker-compose down //停止
GitLab のバックアップ等、データの保存先
/var/lib/docker/volumes/