본문 바로가기
IT이야기/리눅스

ubuntuでdockerを使いgitlabを起動した

by somick 2020. 7. 30.

最近色々進捗があり、開発も進めていきたいなと思った。大事な内容ではないけどやはりgithubに公開してしまうのはちょっと気になる。予定なかったけどうっかり書いちゃいけない内容を書いてしまうのが一番怖い。最近は一回ネットに上がってしまうと完璧に消すのは無理だからな。

家で運用している自宅サーバはまだまだキャパシティ残っているし、dockerも入っているのでgitlabはコンテナで起動することにした。細かい説明はネットに散らかってるからここでは本当に必要な内容だけ記載する。

dockerのinstall

ubuntuにdockerは既に入っていることを前提にしているが、もし入ってなければ以下の手順を参考にして入れる。

最後のhello-worldのコンテナーを起動するのは別にやらなくていいでしょう。色んなやり方があると思うけど公式文書の通りにやろう。

imageのダウンロード

やることは凄く簡単でコマンドを何回か打つだけで起動できる。一応以下のコマンドでイメージをダウンロードしてコンテナーを起動してみよう。

$ docker search gitlab
NAME               DESCRIPTION                                     STARS  OFFICIAL  AUTOMATED
gitlab/gitlab-ce   GitLab Community Edition docker image based …   1735             [OK]
...省略...

docker searchで検索してみたら一番上に出てきた。では先にイメージをダウンロードしておこう。

$ docker pull gitlab/gitlab-ce

この一行で最新のlatestバージョンをダウンロードすることができる。pullせずにコンテナーを作っちゃえば自動でダウンロードしてくれるけど、勉強がてら書いておく。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce    latest              9098c9b6eab0        9 days ago          1.46GB

確認したらlatestバージョンがダウンロード出来た。

docker-composeのinstall

docker-composeがなければコンテナーの作り直す時、毎回全てのオプションを入れないといけないのでいれとこう。docker-composeをインストールする方法も以下のリンクにある。

ymlの作成とコンテナー起動

docker-composeを入れたのでcompose用のymlファイルを作成しよう。自分は以下のymlファイルを作成した。

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'HOSTNAME'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'http://HOST.DOMAIN.COM'
      gitlab_rails['gitlab_shell_ssh_port'] = 7022
  ports:
    - '7080:80'
    - '7022:22'
  volumes:
    - '/docsvc/gitlab/config:/etc/gitlab'
    - '/docsvc/gitlab/logs:/var/log/gitlab'
    - '/docsvc/gitlab/data:/var/opt/gitlab'

コンテナーでgitlabを運用するための最低限の設定を記述してみた。hostnameや外部からアクセスする際のドメインを適切に入れよう。ポート番号も同じ。特にホストのポート番号とコンテナーのポート番号をマッピングを環境に合わせて変更しよう。

volumesで指定したディレクトリマウント先も十分考慮して方がいい。リポジトリが増えてディスクが足りなくなった場合簡単に拡張できるところを指定しよう。これでgitlabのイメージがバージョンアップしたらイメージをpullしてdocker-composeでymlを実行すれば直ぐアップデートできる。

ymlファイルを実行するには以下のようにした。

$ pwd
/root
$ mkdir docker$ cd docker
$ vi docker-compose.yml
………
YMLファイルの内容を記載
………
:wq
$ docker-compose up -d
$ docker ps -a
 

mail配信の設定

gitlabはユーザ作成やパスワード変更時は専用のリンクをメールで送ってくれる。そのため、メールを配信するための設定が出来てないとユーザを作成してもログインが出来なくなるのでメール配信ができるようにしておく必要がある。プロバイダが提供してくれるsmtpサーバやそのた専用のsmtpサーバがあれば問題ないけど、なければgmailを利用しよう。一部制限はあるけど、個人で利用する程度なら問題にならない程度。

※なぜNuroはsmtpサーバを提供してくれないんだろう

上のymlファイルとおり設定したとしたら設定ファイルはイカのパスに保存されているはず。

/docsvc/gitlab/config

このディレクトリにgitlab.rbというファイルがあるのでviなどで開いて、smtpという文字列を検索して下記の様に変更した。

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "USERNAME"
gitlab_rails['smtp_password'] = "PASSWORD"
gitlab_rails['smtp_domain'] = "gmail.com"
gitlab_rails['smtp_authentication'] = :plain

USERNAMEとPASSWORDは自分のgmailアカウントに合わせて変更しよう。ファイルを保存したら設定を反映させるため、gitlabのreconfigureを行う。

gitlab-ctl start

ただし、これだけだとgmail側で受け入れてくれないのでgmailの設定で「ログインとセキュリティ」というところから「安全性の低いアプリの許可」を「有効」に設定する必要がある。

全ての設定が終わったらgitlabをstartしよう。

gitlab-ctl start

アクセスする祭はコンテナー作成時に指定したポート番号をつけてブラウザからアクセスする。最初のログイン画面でrootユーザのパスワード設定してその次個人ユーザを追加して利用した方が良い。ユーザ追加じのパスワードリセットメールもちゃんと飛んでくるのか確認すること。

'IT이야기 > 리눅스' 카테고리의 다른 글

우분투 데스크탑 해상도 변경  (0) 2020.07.31
우분투 데스크탑 리모트 접속 환경 구축  (0) 2020.07.31
postfixをgmailへrelay  (0) 2020.07.30
vi コマンドまとめ  (0) 2020.07.30
vmstat 명령어 정리  (0) 2020.07.30

댓글