[[ GitLab ]]

目次

動機

GitLabを立ち上げて、ReadMe?などの閲覧でMarkDown?書いて、そんでもってPlantUml?がmarkdown内に記述できたら、以下のメリットがあるのではないかと思った

メリット

テキストなので、diffを使った差分がわかるので以下のメリットがある。

GitLabをDockerをつかってインストール

公式サイトの以下のページを見る

https://docs.gitlab.com/ee/install/

インストール方法はたくさんあるが、今回はdockerを使ったやり方にする

ローカルサーバとしてたちあげてみるだけなので、メールの認証とかの設定は行わず、rubyのインタプリタツールを直接触って、サーバに直接パスワードを書き込む方式とする。

dockerを利用したGitLabのインストール

今回は、どの環境でも素早く構築できることを信じてDockerでインストールする方法をためしてみようと思う。

https://docs.gitlab.com/ee/install/docker.html

Docker for Windows は公式にはサポートされていないようだ。でもやりたいのは、ローカルマシンのwindows上で動作させることだからなんとかやってみる。

成功事例の以下のブログ記事を参考にしてみよう。

Windows10にDocker ComposeでGitlabを導入

https://qiita.com/peanuts2013/items/105be140eb9826cfdb2d

Windows+Docker(Compose)でGitlabをローカルに立ち上げた時の話

https://qiita.com/beeeegle/items/b8d8da113f272f61af44

gitlabのDockerイメージ

https://hub.docker.com/r/gitlab/gitlab-ee/

いや、まてよコミュニティーエディションは、こっちか https://registry.hub.docker.com/r/gitlab/gitlab-ce/

こっちがコミュニティーエディションのほうが無料のはず。まあ、そんなことは気にしなくても、dockerを使ったインストールのブログをあされば、docker-composeの設定が書いてあるとおもうから、それをつかえばいい。

機能の比較

https://about.gitlab.com/features/?stage=plan

無料で使える機能が充実している、よっぽど使い倒す気持ちがない以上は無料プランでよいとおもった。

JIRAとも連携できるのか、ふむふむ。

手順

端末のIPアドレスを調べる

ipconfig -all

hostsファイルにローカルのIPアドレスの別名を登録しておく

以下の説明では、調べたIPアドレスを以下名前でhostsファイルに登録したものとする

調べたIPアドレス gitlab1

保存すると、すぐに適用されるようだ

なぜこうするかというと、

だから、IPアドレスが変更になってしまっても、最小限の修正で復帰できて、他サーバからもアクセス可能にするためにhostsをつかう運用が良いのだ。

手順2 docker-compose.ymlを作る

docker-compose.ymlとは、複数のdockerで立ち上げるサーバの設定ファイルみたいなもので、dockerは停止させるとdockerに保存したファイルは初期化されやすいので、そのサーバ内で使うデータは volumes: で指定したところに格納するようになっている。

docker-compose.yml

version: "3.9"
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab1:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    ports:
      - '8929:8929'
      - '2224:22'
      - '443:443'
    volumes:
      - 'C:\\gitlab\\config:/etc/gitlab'
      - 'C:\\gitlab\\logs:/var/log/gitlab'
      - 'C:\\gitlab\\data:/var/opt/gitlab'
  plantuml:
    image: plantuml/plantuml-server
    restart: always
    ports:
      - "8080:8080"

参考URL: https://qiita.com/beeeegle/items/b8d8da113f272f61af44

上記のvolumesdで設定したディレクトリがなければ、ディレクトリを作成しておく

手順3 gitlabとplantumlサーバを立ち上げる

以下のコマンドで、上記で設定したdocker-compose.ymlで設定した内容でdockerが起動する。

docker-compose up -d

起動には数分かかる。起動中は以下のコマンドでstartingと表示される

docker-compose ps

起動が完了すると

healty

という状態になる。

docker-compose.ymlのvolume:で指定したディレクトリにgitlabのファイルが共有されるようになる。

手順4 gitlabの設定ファイルにplantumlサーバとのリダイレクト設定できるように設定を追記

gitlabからplantumlへは、gitlab内のnginxサーバのプロキシ設定を以下の設定を追記することで行う。

参考: https://docs.gitlab.com/ee/administration/integration/plantuml.html

ファイル名:/etc/gitlab/gitlab.rb

# Docker deployment
nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n proxy_cache off; \n    proxy_pass  http://gitlab1:8080/; \n}\n"

捕捉:ここで躓く人は、以下のサイトを見るといいのかもしれない。

https://qiita.com/RYO-4947123/items/cf138989eebf12e45601

設定を反映させる

# 立ち上がっているdockerのコンテナ名を調べる
docker-compose ps
# コンテナに接続
docker exec -it コンテナ名 bash
# 設定を反映させる
gitlab-ctl reconfigure

直接パスワードを登録する

参考: https://e-penguiner.com/gitlab-with-docker-onpremise/

立ち上がっているGitLabにbashで接続する

rubyのツールを立ち上げる

dockerコンテナ内のbash上で以下のコマンドを打つ

gitlab-rails console -e production

※起動には数分かかります

ログインできるようにする。

gitlabのdocker版はメールサーバまでは入っていない。設定方法は有るらしいが、 数人で使う程度ならば、パスワードはgitlabに以下に示す手作業でいれることができる。

rubyのインタプリタが動作するのでパスワードを設定する

user = User.where(id: 1).first
user.password='設定したいパスワード'
user.password_confirmation='設定したいパスワード'
user.save!
exit

gitの管理者でログイン

ユーザを追加する前に、root権限でログインしておく

以下の手順で認証のメールが必要な手続きをしないようにしておく

これで、ユーザ追加後にログインできるようになった。

rootユーザ以外の場合

ユーザ登録をすると、パスワードがランダムに割り振られるので、上記の

user = User.where(id: 1).first

の数値1を適宜増やしてパスワードを直接いれて保存するのがよいと思う。

ただし、パスワードをいれたあと、以下の設定が無いとログインができない。

GitLabPlantUml?を使う手順

plantumlをgitlabで使うには、設定で有効にしないといけない

手順

Main menu の Adminをクリック
Settings の Generalをクリック
PlantUML セクションを広げる
Enable PlantUML のチェックボックスをオンにする
URLには、http://gitlab1:8080 と入れる

参考:gitlabのplantuml設定を有効にする 

https://docs.gitlab.com/ee/administration/integration/plantuml.html#configure-your-plantuml-server

SSHキーの登録

参考: https://click.jp/knowledge/1476/

手順

もし、git for windowsをインストールしていない場合はインストールする
もし、まだ公開鍵がない場合は以下の手順で作る

以下の"ホームディレクトリ"は各自の環境のホームディレクトリに読み替えて実行されたい

git for windowsのシェルでログインした直後という前提で説明する

# ホームディレクトリに移動
cd ~
mkdir .ssh
cd .ssh
ssh-keygen

あとはエンターキー

すると、ファイルが2つできる。

# 生成されたファイルを確認
ls

拡張子がpubのファイルがあったとする。

なんとか.pub

そのファイルの中身をコピペしたいので

cat なんとか.pub

とすると鍵の内容がわかるので、それをコピーする。

gitlabでプロジェクトをつくったとしたら、"ADD SSH-KEY"ボタンをクリックする

先ほどコピーしたなんとか.pubの中身を張り付ける。

これで、

git pull

git push

ができるようになる。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS