勉強の為に転載しました。
https://agora.sanei-hy.co.jp/technology/2018/03/00016/コメント:
2018年9月現在では、GitLabがRedmineの機能をカバーし始めたので、上記の連携を辞めて解除して、Gitlab単体やGo言語製のGithubクローンGogs
https://opcdiary.net/go%E8%A8%80%E8%AA%9E%E3%81%A7%E9%96%8B%E7%99%BA%E3%81%95%E3%82%8C%E3%81%9Fgithub%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3gogs%E3%81%AE%E7%B4%B9%E4%BB%8B/
などを使う動きもあるようです。
その2つのツールを連携すると、さらに以下のようなことができるようになります。
作成した領域は "/share/フォルダー名" でアクセス可能です。
RedmineとGitlabのインストール時はデータ領域をこのフォルダーからマウントします。
疑問にお答えします。
お問合せはこちら資料ダウンロードはこちら
2018年9月現在では、GitLabがRedmineの機能をカバーし始めたので、上記の連携を辞めて解除して、Gitlab単体やGo言語製のGithubクローンGogs
https://opcdiary.net/go%E8%A8%80%E8%AA%9E%E3%81%A7%E9%96%8B%E7%99%BA%E3%81%95%E3%82%8C%E3%81%9Fgithub%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3gogs%E3%81%AE%E7%B4%B9%E4%BB%8B/
などを使う動きもあるようです。
Redmine & Gitlabは、低速な言語でチームでのソースコードの保守メンテナンスの効率が低く、推薦システムメモリーも約8GBとレンタルサーバーでの運用コストが高いRubyで出来ております。2021年03月時点で考慮しますと、将来的には、高速で、少ないシステムメモリーで動作して開発したWEBサイトのソースコードのチームでの保守メンテナンスの効率が良いなどのメリットがあるGo言語に移植するべきですが、更に将来V言語とそのフレームワークの完成度が高まり安定して動作する様になったら、Go言語とV言語は、構文と特徴がそっくりなので、Go言語からV言語に移植しやすいと思います。aon(エーオン)CEO WEB Programmer 石塚 正浩
今回は、RedmineとGitlabを連携する設定手順を紹介します。
RedmineとGitlabを連携するメリット
Redmine、Gitlabを単体で使用しても便利なのですが、その2つのツールを連携すると、さらに以下のようなことができるようになります。
- Redmineの画面上からGitのリポジトリーが見える
Redmine上で、最新リビジョンまでデータの差分を見ることができます。 - Gitのリポジトリーへファイルをコミットする時にRedmineチケットの紐付けができる
Redmineチケットにどのコミットが関連しているのかが確認できます。
いつ、誰が、何をしたのか…も分かり易く表示されます。
動作確認環境
製品: TS453Pro
バージョン: QTS 4.2.1 Build 20160601
バージョン: QTS 4.2.1 Build 20160601
概要
記事では以下の手順を紹介します。
RedmineとGitlabのインストールはSSH接続での操作を前提としています。
また、Redmine・Gitlabでのプロジェクト・チケットの作成、Gitのpush等一般的な操作の説明は
省略します。
RedmineとGitlabのインストールはSSH接続での操作を前提としています。
また、Redmine・Gitlabでのプロジェクト・チケットの作成、Gitのpush等一般的な操作の説明は
省略します。
- 事前準備
- Redmineのインストール
- Gitlabのインストール
- Redmine/Gitlabの設定
- Redmine-Gitlab連携確認
事前準備
RedmineとGitlabを連携するためには、Redmine側からGitlab側のリポジトリーを参照する必要が
あります。
RedmineコンテナーからGitlabコンテナーを直接参照することはできません。
QNAPのNASストレージ上にリポジトリーデータ用の共有フォルダーを作成し、両コンテナーの
インストール時にマウント元として指定します。
今回のインストールする環境のイメージは以下のような形になります。
あります。
RedmineコンテナーからGitlabコンテナーを直接参照することはできません。
QNAPのNASストレージ上にリポジトリーデータ用の共有フォルダーを作成し、両コンテナーの
インストール時にマウント元として指定します。
今回のインストールする環境のイメージは以下のような形になります。
※補足※
下記のDocker hubの説明ではデータのマウント元には
/srv/docker/gitlab/や/srv/docker/redmine/を指定していますが、
QNAPで同様の設定を行うとNASストレージの特性上、
再起動時に全てのデータが消えてしまいますので注意してください。
これからご説明する手順で作成した共有フォルダーであれば、再起動時もデータが残ります。
Docker hub (sameersbn/redmine)
Docker hub (sameersbn/gitlab)
下記のDocker hubの説明ではデータのマウント元には
/srv/docker/gitlab/や/srv/docker/redmine/を指定していますが、
QNAPで同様の設定を行うとNASストレージの特性上、
再起動時に全てのデータが消えてしまいますので注意してください。
これからご説明する手順で作成した共有フォルダーであれば、再起動時もデータが残ります。
Docker hub (sameersbn/redmine)
Docker hub (sameersbn/gitlab)
手順
- ホーム画面から「File Station」アイコンをクリック
- ボリュームの右側に表示されるPlusアイコンをクリック
- 共有フォルダー名を入力、[作成]ボタンをクリック
作成した領域は "/share/フォルダー名" でアクセス可能です。
RedmineとGitlabのインストール時はデータ領域をこのフォルダーからマウントします。
Redmineのインストール
Redmine、MySQLのコンテナーをコマンドラインからインストールします。
この操作はSSH接続で行います。
各入力値の説明は以下のとおりです。
引数 | 説明 |
---|---|
MySQL Name | MySQLコンテナーの名前 |
Redmine Name | Redmineコンテナーの名前 |
Redmine DB Root Pwd | Redmine用DBのrootユーザーのパスワード |
Redmine DB Name | Redmine用DBの名前 |
Redmine HTTP Port No | Redmineをブラウザーで使用するときのポート 番号 |
Shared Folder Path | 事前準備で作成したQNAPのNASストレージ上の フォルダーの絶対パス |
手順
- リモートPCのターミナルから、adminアカウントでログイン
リモートPCからSSH接続する手順 > をご覧ください。 - RedmineとGitlabで使用するMySQLをインストール
インストール時にはRedmineのデータベースを作成します。
以下のコマンドを入力します。<>の入力値の説明は上の表を参照してください。$ docker run -d --name <MySQL Name>
-e MYSQL_ROOT_PASSWORD=<Redmine DB Root Pwd>
-e MYSQL_DATABASE=<Redmine DB Name>
mysql:latest --character-set-server=utf8 --collation-server=utf8_general_ci
--skip-character-set-client-handshake - Redmine本体 インストール
以下のコマンドを入力します。$ docker run -d -p <Redmine HTTP Port No>:80 --name <Redmine Name>
-e DB_NAME=<Redmine DB Name> -e DB_PASS=<RedmineDB Root Pwd>
--link <MySQL Name>:mysql -v <Shared Folder Path>:/home/git/data
sameersbn/redmine:latest
Gitlabのインストール
Gitlab、Redisのコンテナーをコマンドラインからインストールします。 Redmineの
インストール時に作成したMySQLコンテナーにGitlab用のデータベース、ユーザーを追加します。
この操作はSSH接続で行います。
各入力値の説明は以下のとおりです。
インストール時に作成したMySQLコンテナーにGitlab用のデータベース、ユーザーを追加します。
この操作はSSH接続で行います。
各入力値の説明は以下のとおりです。
引数 | 説明 |
---|---|
Redis Name | Redisコンテナーの名前 |
MySQL Name | MySQLコンテナーの名前(Redmineインストール時に 決めたもの) |
Redmine Name | Redmineコンテナーの名前(Redmineインストール時に 決めたもの) |
Gitlab Name | Gitlabコンテナーの名前 |
Gitlab DB User | Gitlab用DBのユーザー名 |
Gitlab DB Pwd | Gitlab用DBのパスワード |
Gitlab DB Name | Gitlab用DBの名前 |
Gitlab HTTP Port No | Gitlabをブラウザで使用するときのポート番号 (Redmineや他のWebアプリと重複しないように番号を 選択する) |
Gitlab SSH Port No | GitlabをSSH接続で使用するときのポート番号 |
Shared Folder Path | 事前準備で作成したQNAPのNASストレージ上のフォルダーの絶対パス |
手順
- リモートPCのターミナルから、adminアカウントでログイン
リモートPCからSSH接続する手順 > をご覧ください。 - Gitlabで使用するRedisをインストール
以下のコマンドを入力します。<>の入力値の説明は表を参照してください。$ docker run --name <Redis Name> -d sameersbn/redis:latest - MySQLへログイン
以下のコマンドを入力します。$ docker exec -it <MySQL Name> bash
$ mysql -uroot -psecret - MySQLのデータベースへスキーマを追加
以下のコマンドを入力します。mysql> CREATE USER '<Gitlab DB User>'@'%.%.%.%' IDENTIFIED BY '<Gitlab DB Pwd>';
mysql> CREATE DATABASE IF NOT EXISTS `<Gitlab DB Name>`
-> DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
mysql> GRANT ALL PRIVILEGES ON `<Gitlab DB Name>`.*
-> TO '<Gitlab DB User>'@'%.%.%.%';
mysql> quit - 以下のコマンドでGitlab本体をインストールします
$ docker run --name <Gitlab Name> -d
-p <Gitlab HTTP Port No>:80 -p <Gitlab SSH Port No>:22
-e GITLAB_PORT=<Gitlab HTTP Port No> -e GITLAB_SSH_PORT=<Gitlab SSH Port No>
-e DB_ADAPTER=mysql2 -e DB_HOST=mysql -e DB_NAME=<Gitlab DB Name>
-e DB_USER=<Gitlab DB User> -e DB_PASS=<Gitlab DB Pwd>
-e GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string
--link <MySQL Name>:mysql --link <Redis Name>:redisio
--link <Redmine Name>:redmine -v <Shared Folder Path>:/home/git/data
sameersbn/gitlab:latest
Redmine-Gitlabの設定
インストールしたRedmineとGitlabそれぞれに連携するプロジェクトを作成し、設定を追加します。
プロジェクトの新規作成
ブラウザーからRedmineとGitlabにプロジェクトを作成します。作成の詳細な手順は省略します。
- ブラウザーからGitlabを開く
- rootのアカウントでログイン
- 連携用に新しいプロジェクトを作成
- ブラウザーからRedmineを開く
- adminのアカウントでログイン
- 連携用に新しいプロジェクトを作成
Redmineの設定
ブラウザーからRedmineの連携の設定を行います。また、Gitlabの設定に必要な情報を確認します。
- ブラウザーからRedmineを開く
- ページ右側:管理 > 設定 メニューを選択
- 「リポジトリ」タブ表示
- 以下のとおり設定
項目名 入力値 コミットを自動取得する チェックOn リポジトリ管理用のWebサービスを有効にする チェックOn APIキー APIキー値(または「キーの生成」から自動生成)
※APIキーはこの後Gitlab側へ設定するためメモしておく - ブラウザーに以下のURLを入力
http://QNAP IPアドレス:Redmine HTTPポート番号/projects/プロジェクト識別子.xml - 表示されるXMLからプロジェクトID(idタグ)の数字を確認
プロジェクトIDはこの後Gitlab側へ設定するため覚えておきます。 - Redmineの画面上から連携するプロジェクトを開く
- 「設定」タブ クリック
- 「リポジトリ」タブ クリック
- 「新しいリポジトリ」 リンククリック
- 以下のとおりリポジトリを作成
項目名 入力値 バージョン管理システム Git リポジトリのパス /home/git/data/repositories/GitlabのProjectの名前空間/GitlabのProject名 ファイルとディレクトリの最新コミットを表示する チェックOn - 設定後の画面から識別子名をクリック
- Gitlabのプロジェクトへ既にファイルをコミット済みの場合、ファイルとコミット履歴が表示されることを確認
まだファイルをコミットしていない場合は404エラーが表示されます。
Gitlabの設定
ブラウザーからGitlabの連携の設定を行います。
- ブラウザーからGitlabを開く
- 連携するプロジェクトを開く
- Settings > Web hooks 選択
- URLを入力
http://redmine/sys/fetch_changesets?key=APIキー&id=プロジェクトID - [Add Webhooks] ボタン押下
- 追加されたWebhookの[Test Hook]ボタン押下
成功すれば設定完了です。
Redmine-Gitlab連携確認
Gitlabのリポジトリーへファイルのpushを行い、Redmineに反映されるか確認を行います。
- Redmineのプロジェクト上で新規チケットを作成
- Gitlabのプロジェクトのリポジトリーへファイルのpush
コミット時にコメントの先頭に"refs #Redmineチケット番号"と記入します。
※今回は簡易的に動作確認を行うために、ブラウザーからRedmineチケット#2に紐付けて
READMEファイルをpushしました。 - Redmineチケット#2を開く
関連しているリビジョンにコミット履歴が表示されました。
ファイルと履歴はプロジェクトのリポジトリーからも確認することができます。
関連記事
お気軽にお問合せください。
自社に合う製品が分からない、導入についての効果が知りたい…専任のスタッフがあなたの疑問にお答えします。
お問合せはこちら資料ダウンロードはこちら
お電話でのお問合せ053-465-1555
受付時間 :
平日9時~12時、
13時~17時
担当 : 松下 一彦、
鈴木 道尋
----
平日9時~12時、
13時~17時
担当 : 松下 一彦、
鈴木 道尋
----
0 コメント:
コメントを投稿