Gitの使い方の練習用と、食い散らかしたソースファイル管理のため、
ローカルでGitのクローンサーバを立ち上げる。
一番メモリ容量の少ないGogsからforkされた、
Go言語で書かれたGiteaをPodmanを利用して構築する。
構築方法は以下を参照した。
https://hub.docker.com/r/gitea/gitea/
Contents
Dockerイメージダウンロード
ネット環境遅いため、コンテナ起動時にイメージダウンロードをすると、
タイムアウトエラーしてしまうため、先にイメージのみダウンロード。
|
1 2 |
$ podman pull gitea/gitea:latest $ podman pull docker.io/mariadb:10 |
docker-compose.yml作成
podman-composeを使うためにymlファイルを作成。
https://docs.gitea.io/en-us/install-with-docker/を参照。
$ mkdir -p ~/docker/gitea
$ cd ~/docker/gitea
$ vim docker-compose.yml
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
services: gitea: image: gitea/gitea:latest volumes: - ./git_data:/data ports: - "3000:3000" - "3022:22" depends_on: - db restart: always networks: - gitea environment: - USER_UID=1000 - USER_GID=1000 - DB_TYPE=mysql - DB_HOST=db:3306 - DB_NAME=gitea - DB_USER=gitea - DB_PASSWD=changeme - TZ="Asia/Tokyo" db: image: mariadb:10 restart: always environment: - MYSQL_ROOT_PASSWORD=changeme - MYSQL_DATABASE=gitea - MYSQL_USER=gitea - MYSQL_PASSWORD=changeme networks: - gitea volumes: - ./db_data:/var/lib/mysql |
ローカル保存用のディレクトリ作成。
$ mkdir git_data
$ mkdir db_data
$ chmod 777 git_data
$ chmod 777 db_data
podman-compose実行
準備が整ったのでpodman-compose実行。
|
1 2 3 4 5 6 7 8 9 |
$ cd ~/docker/gitea $ podman-compose up -d $ podman-compose ps using podman version: podman version 1.6.4 podman ps -a --filter label=io.podman.compose.project=gitea CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31d0e2fdcb3c docker.io/gitea/gitea:latest /bin/s6-svscan /e... 37 seconds ago Up 36 seconds ago 0.0.0.0:3022->22/tcp, 0.0.0.0:3307->3306/tcp, 0.0.0.0:3000->3000/tcp gitea_gitea_1 4950a0c27d55 docker.io/library/mariadb:10 mysqld 38 seconds ago Up 38 seconds ago 0.0.0.0:3022->22/tcp, 0.0.0.0:3307->3306/tcp, 0.0.0.0:3000->3000/tcp gitea_db_1 0 |
ファイアウォール設定
サーバ外からポート3000と3022にアクセスできるようにポートを開ける。
最終的にはフロントエンドのNginxでリバースプロキシするので、
一次的に開けるのみとする。
|
1 2 |
$ sudo firewall-cmd --zone=public --add-port=3000/tcp $ sudo firewall-cmd --zone=public --add-port=3022/tcp |
Giteaインストール
http://[Server IP Address]:3000にアクセスすると以下の画面が表示される。

右上にある”登録”をクリックすると、初期設定画面に移動するので設定実施。
基本的にはdocker-compose.ymlの設定になっている。
変更した個所は以下
- サイトタイトル => 適宜
- SSHサーバーのドメイン => Server IP Address
- SSHサーバーのポート => docker-compose.yml設定値
- GiteaのベースURL => http://[Server IP Address]:3000
アカウントを今すぐ登録で初期ユーザ(兼 管理者)を登録する。
Nginxリバースプロキシ設定
Gitea用のリバースプロキシ設定を/etc/nginx/conf.d/gitea.confに記載する。
# vim /etc/nginx/conf.d/gitea.conf
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
upstream gitea { server localhost:3000; } server { listen 80; server_name git.starseeker.podzone.org; location ^~ /.well-known/acme-challenge/ { root /usr/share/nginx/html; default_type "text/plain"; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; server_name git.starseeker.podzone.org; ssl on; ssl_certificate /etc/letsencrypt/live/starseeker.podzone.org/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/starseeker.podzone.org/privkey.pem; access_log /var/log/nginx/gitea_access.log; client_max_body_size 50m; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $http_host; #proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://gitea/; #proxy_redirect http:// https://; proxy_redirect off; } } |
外部から見えるURIが変更になるので、Giteaのapp.iniを修正する。
$ vim ~/docker/gitea/git_data/gitea/conf/app.ini
|
1 2 3 4 5 6 |
[server] PROTOCOL = http DOMAIN = [FQDN] ROOT_URL = https://[FQDN]/ HTTP_ADDR = 0.0.0.0 HTTP_PORT = 3000 |