GitLabを立ち上げて、ReadMe?などの閲覧でMarkDown?書いて、そんでもってPlantUml?がmarkdown内に記述できたら、以下のメリットがあるのではないかと思った
テキストなので、diffを使った差分がわかるので以下のメリットがある。
メールサーバを導入しないので以下に示す手順を実行しないとログインできない点に注意する
要点:以下の文章で部分的に説明していますが、結局はこれをコピペしてつかってください。
version: "3.9" services: web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'gitlab.example.com' environment: TZ: "Asia/Tokyo" GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab1:8929' nginx['redirect_http_to_https'] = true 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: - "8005:8080" environment: TZ: "Asia/Tokyo" kroki: image: 'yuzutech/kroki' restart: always ports: - "8081:8000" depends_on: - blockdiag - mermaid - bpmn - excalidraw environment: - TZ="Asia/Tokyo" - KROKI_BLOCKDIAG_HOST=blockdiag - KROKI_MERMAID_HOST=mermaid - KROKI_BPMN_HOST=bpmn - KROKI_EXCALIDRAW_HOST=excalidraw blockdiag: image: yuzutech/kroki-blockdiag restart: always expose: - "8001" mermaid: image: yuzutech/kroki-mermaid restart: always expose: - "8002" bpmn: image: yuzutech/kroki-bpmn restart: always expose: - "8003" excalidraw: image: yuzutech/kroki-excalidraw restart: always expose: - "8004"
上記のvolumesがない場合は作成しておく
公式サイトの以下のページを見る
https://docs.gitlab.com/ee/install/
インストール方法はたくさんあるが、今回はdockerを使ったやり方にする
ローカルサーバとしてたちあげてみるだけなので、メールの認証とかの設定は行わず、rubyのインタプリタツールを直接触って、サーバに直接パスワードを書き込む方式とする。
今回は、どの環境でも素早く構築できることを信じてDockerでインストールする方法をためしてみようと思う。
https://docs.gitlab.com/ee/install/docker.html
Docker for Windows は公式にはサポートされていないようだ。でもやりたいのは、ローカルマシンのwindows上で動作させることだからなんとかやってみる。
成功事例の以下のブログ記事を参考にしてみよう。
https://qiita.com/peanuts2013/items/105be140eb9826cfdb2d
https://qiita.com/beeeegle/items/b8d8da113f272f61af44
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とも連携できるのか、ふむふむ。
ipconfig -all
以下の説明では、調べたIPアドレスを以下名前でhostsファイルに登録したものとする
調べたIPアドレス gitlab1
保存すると、すぐに適用されるようだ
だから、IPアドレスが変更になってしまっても、最小限の修正で復帰できて、他サーバからもアクセス可能にするためにhostsをつかう運用が良いのだ。
以下のコマンドで、上記で設定したdocker-compose.ymlで設定した内容でdockerが起動する。
docker-compose up -d
起動には数分かかる。起動中は以下のコマンドでstartingと表示される
docker-compose ps
起動が完了すると
healty
という状態になる。
docker-compose.ymlのvolume:で指定したディレクトリにgitlabのファイルが共有されるようになる。
# 立ち上がっているdockerのコンテナ名を調べる docker-compose ps
# コンテナに接続 docker exec -it コンテナ名 bash
gitlabからplantumlへは、gitlab内のnginxサーバのプロキシ設定を以下の設定を追記することで行う。
参考: https://docs.gitlab.com/ee/administration/integration/plantuml.html
# 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
# 設定を反映させる gitlab-ctl reconfigure
参考: https://e-penguiner.com/gitlab-with-docker-onpremise/
dockerコンテナ内のbash上で以下のコマンドを打つ
gitlab-rails console -e production
※起動には数分かかります
gitlabのdocker版はメールサーバまでは入っていない。設定方法は有るらしいが、 数人で使う程度ならば、パスワードはgitlabに以下に示す手作業でいれることができる。
user = User.where(id: 1).first
user.password='設定したいパスワード'
user.password_confirmation='設定したいパスワード'
user.save!
exit
ユーザを追加する前に、root権限でログインしておく
以下の手順で認証のメールが必要な手続きをしないようにしておく
これで、ユーザ追加後にログインできるようになった。
ユーザ登録をすると、パスワードがランダムに割り振られるので、上記の
user = User.where(id: 1).first
の数値1を適宜増やしてパスワードを直接いれて保存するのがよいと思う。
ただし、パスワードをいれたあと、以下の設定が無いとログインができない。
plantumlをgitlabで使うには、設定で有効にしないといけない
Main menu の Adminをクリック
Settings の Generalをクリック
PlantUML セクションを広げる
Enable PlantUML のチェックボックスをオンにする
URLには、http://gitlab1:8005 と入れる
https://docs.gitlab.com/ee/administration/integration/plantuml.html#configure-your-plantuml-server
参考: 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
ができるようになる。
上記のplantumlの追加だけでも十分なのだが、ついでにkrokiも使えるようにしておく。
C4とかBPMNとか使ってみたい。
GitLabの設定参考URL: https://docs.gitlab.com/ee/administration/integration/kroki.html
以下をdocker-compose.ymlに追加する。軽く説明すると、krokiのコアを呼ぶけど、いろいろなマークダウン風の出力を提供しているサーバのdockerたちに依存してるよ。
ぐらいの意味である。
kroki: image: 'yuzutech/kroki' ports: - "8081:8000" depends_on: - blockdiag - mermaid - bpmn - excalidraw environment: - TZ="Asia/Tokyo" - KROKI_BLOCKDIAG_HOST=blockdiag - KROKI_MERMAID_HOST=mermaid - KROKI_BPMN_HOST=bpmn - KROKI_EXCALIDRAW_HOST=excalidraw blockdiag: image: yuzutech/kroki-blockdiag expose: - "8001" mermaid: image: yuzutech/kroki-mermaid expose: - "8002" bpmn: image: yuzutech/kroki-bpmn expose: - "8003" excalidraw: image: yuzutech/kroki-excalidraw expose: - "8004"
ポートの8081が、こちらから使うポートになるので、番号が他のdockerで立ち上げたサーバとかぶらないようにしよう。
https://www.rk-k.com/archives/4399
plantumlのときで出てきた設定項目の2,3個上にkrokiの設定がある。
サーバのアドレスをgitlab1にしていれば、以下のリンクからでも設定画面に行くと思う。
http://gitlab1:8929/admin/application_settings/general#js-kroki-settings
チェックボックスをオンにする。
URLには、
http://gitlab1:8081
をいれる
公式の解説URL: https://docs.kroki.io/kroki/setup/install/#images
そこには、Companion containers という欄にBPMN
が書いてあって、リンクをたどると、Dockerのページに飛ぶ。ちなみにURLは以下
https://hub.docker.com/r/yuzutech/kroki-bpmn
そこには、dockerのpullコマンドが下記のように書いてあった。
docker pull yuzutech/kroki-bpmn
gmailに送信できないらしいが参考URLを手掛かりにやってみる。
メールサーバがないと、手動でユーザ登録とかなので、ローカルでSMTPのメールサーバをたて、gitlabと連動させてみる
mailserver: image: boky/postfix environment: ALLOWED_SENDER_DOMAINS: 'gitlab1'
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "gitlab1" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_domain'] = "gitlab1" gitlab_rails['gitlab_email_from'] = 'gitlab@gitlab1' gitlab_rails['gitlab_email_reply_to'] = 'noreply@gitlab1'
https://hawksnowlog.blogspot.com/2021/07/run-postfix-and-gitlab-on-docker-compose.html
下記のサイトには、gmailに送るのが楽と記載があった。