弊社では社内のGitリポジトリサーバーとしてGitLabコンテナを運用しています。
しかし、コンテナのロードから動作開始まで2分程度かかる(※)ことから、Go言語で書かれた軽量なGitリポジトリサーバーGiteaコンテナをテスト目的で導入してみました。
※コンテナの起動時に問題になるだけで一度起動してしまえば問題ありません。
DockerfileはGitHubのgiteaプロジェクトを参照してください。
[Unit]
Description = gitea
[Service]
Type = forking
ExecStartPre = /usr/bin/rm -f /%t/%n-pid /%t/%n-cid
ExecStart = /usr/bin/podman run -d --name=gitea \
--conmon-pidfile=/%t/%n-pid --cidfile=/%t/%n-cid \
--pod=container-pod \
-e USER_UID=1000 -e USER_GID=1000 \
-v /var/giteadata:/data \
-v /etc/localtime:/etc/localtime:ro \
docker.io/gitea/gitea:latest
ExecStop = /usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`"
KillMode = none
ExecStartRestart = always
[Install]
WantedBy = default.target
:
http {
:
server {
:
server_name git.example.jp;
:
location / {
:
proxy_pass http://127.0.0.1:3210/;
}
:
}
}
Gitea用に用意した永続化ディレクトリ/var/giteadata内を空にして、gitea.serviceを起動します。
正常に起動したら、そのまますぐにgitea.serviceを終了させます。
Giteaの設定ファイル/var/giteadata/gitea/conf/app.iniが作成されていますので内容を編集します。
@@ -12,13 +12,14 @@ [server] APP_DATA_PATH = /data/gitea -DOMAIN = localhost -SSH_DOMAIN = localhost -HTTP_PORT = 3000 -ROOT_URL = +DOMAIN = git.example.jp +SSH_DOMAIN = git.example.jp +HTTP_PORT = 3210 +ROOT_URL = https://git.example.jp/ DISABLE_SSH = false -SSH_PORT = 22 -SSH_LISTEN_PORT = 22 +START_SSH_SERVER = true +SSH_PORT = 222 +SSH_LISTEN_PORT = 222 LFS_START_SERVER = false LFS_CONTENT_PATH = /data/git/lfs
Giteaの設定ファイルの編集を終えたら、再びgitea.serviceを起動します。
ブラウザで設定ファイルのROOT_URLに設定したURLにアクセスするとGiteaのトップ画面が表示されます。
スクロールして『Giteaをインストール』をクリックするとインストールが完了します。