gentooのPodmanでgiteaをセットアップする
Tech > Distoribution > gentoo
gentooでgiteaを利用する方法、podmanで構築する
パッケージ
cmv ~ # emerge app-containers/podman
ちなみにUSEフラグは、以下のとおり
cmv ~ # equery u app-containers/podman
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for app-containers/podman-3.4.4:
U I
- - apparmor : Enable AppArmor support.
- - btrfs : Enables dependencies for the "btrfs" graph driver, including necessary kernel flags.
+ + fuse : Enables fuse dependencies (fuse-overlayfs is especially useful for rootless mode).
+ + rootless : Enables dependencies for running in rootless mode.
btrfsを使うとなにか良いことが起こる、けどカーネルフラグが必要です、ということらしいです。
ネットワーク設定
後からpodを追加したときに、同じサブネットで通信できるように作成しておいた方が良いか。
cmv ~ # podman network create --subnet 10.10.0.0/24 cmv-net
/etc/cni/net.d/cmv-net.conflist
作成されたネットワークを確認
cmv ~ # podman network ls
NETWORK ID NAME VERSION PLUGINS
2f259bab93aa podman 0.4.0 bridge,portmap,firewall,tuning
0af281d842b7 cmv-net 0.4.0 bridge,portmap,firewall,tuning
dockerイメージのpull
giteaのイメージをpull
cmv ~ # podman pull docker.io/gitea/gitea:latest
Trying to pull docker.io/gitea/gitea:latest...
Getting image source signatures
Copying blob 5758d4e389a3 done
Copying blob dd9d3296c621 done
....
Copying config aa2eb33908 done
Writing manifest to image destination
Storing signatures
aa2eb33908d42cb877d1650110b915073bc389d3943abdd76fbae55af7e086aa
- postgresql-10のイメージをpull
cmv ~ # podman pull docker.io/library/postgres:10.0
Trying to pull docker.io/library/postgres:10.0...
Getting image source signatures
Copying blob 3e17c6eae66c done
Copying blob edb9dc1cfcb8 done
...
Copying blob 7a07813393c7 done
Copying config 4860bdf1a5 done
Writing manifest to image destination
Storing signatures
4860bdf1a517b2538cb5e9d4c742285eef811afc335bc63f78e0aba6313e1622
イメージの情報は /var/lib/containers/ 下へ配備される
pull実行時に以下のエラーが出力された場合
‘‘‘ cmv ~ # podman pull docker.io/library/postgres:10.0 Error: open /etc/containers/policy.json: no such file or directory ‘‘‘
コピーする、おそらくpullする場合の、ポリシーを設定すると思われます
cmv ~ # cp /etc/containers/policy.json.example /etc/containers/policy.json
セキュリティを考慮する必要がある場合は、意味を理解した上でコピーしてください
Podの作成
cmv-gitea-podの名前でPodを作成する
cmv ~ # podman pod create --name cmv-gitea-pod --network cmv-net --ip 10.10.0.3 -p 3002:3000
de4137486c3c4d54f009c367ee61eafa966f721248e81358c2eb08ad279c095b
データ保存用ディレクトリ作成
giteaのデータ、postgresqlのデータ保存用ディレクトリをホスト側へ作成
cmv ~ # mkdir -p /storage1/docker/storage/gitea/data
cmv ~ # mkdir -p /storage1/docker/storage/gitea/postgresql
gitea作成
cmv ~ # podman run -d --restart=always --pod=cmv-gitea-pod -e USER_UID="1000" -e USER_GID="1000" -e DB_TYPE="postgres" -e DB_HOST="db:5432" -e DB_NAME="gitea" -e DB_USER="gitea" -e DB_PASSWD="git" -v /storage1/docker/storage/gitea/data:/data -v /etc/localtime:/etc/localtime:ro --name gitea gitea/gitea:latest
94302e9663bb00b334a6e7f23c85425f8d45c80b529e9bae5e61cd11d744cb26
gitea-db作成
podman run -d --restart=always --pod=cmv-gitea-pod -e POSTGRES_USER="gitea" -e POSTGRES_PASSWORD="gitea" -e POSTGRES_DB="gitea" -v /storage1/docker/storage/gitea/postgresql:/var/lib/postgresql/data --name gitea-db docker.io/library/postgres:10.0
76502e9663bb00b334a6e7f23c85425f8d45c80b529e9bae5e61cd11d744fdc3
コンテナ起動確認
cmv ~ # podman pod ps
POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS
316ada2e246e cmv-gitea-pod Running 29 minutes ago 755787c04991 3
cmv ~ # podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
755787c04991 k8s.gcr.io/pause:3.5 29 minutes ago Up 4 minutes ago 0.0.0.0:3002->3000/tcp 316ada2e246e-infra
94302e9663bb docker.io/gitea/gitea:latest /bin/s6-svscan /e... 25 minutes ago Up 4 minutes ago 0.0.0.0:3002->3000/tcp gitea
899200b8b34e docker.io/library/postgres:10.0 postgres 14 minutes ago Up 4 minutes ago 0.0.0.0:3002->3000/tcp gitea-db
gitea初期化
DBの接続がコンテナ名になっていてhostsの設定が適切でない場合、エラーが出ますので適切設定をご確認ください、 giteaのベースURL はホストでアクセスするURLに設定します。
初期化が完了すると、ログイン画面が表示されます(初回は404になりますが問題ないです)
- http://localhost:3002
systemdへのPodの登録
自動起動させるための設定をsystemdへ追加する、generateを実行すると3ファイル作成されるので、そのままコピーする
cmv ~ # podman generate systemd --files --name cmv-gitea-pod
cmv ~ # cp container-gitea* /usr/lib/systemd/system/
cmv ~ # cp pod-cmv-gitea-pod.service /usr/lib/systemd/system/
enableする
cmv ~ # systemctl enable pod-cmv-gitea-pod.service
Created symlink /etc/systemd/system/default.target.wants/pod-cmv-gitea-pod.service → /usr/lib/systemd/system/pod-cmv-gitea-pod.service.
cmv ~ # systemctl enable container-gitea-db.service
Created symlink /etc/systemd/system/default.target.wants/container-gitea-db.service → /usr/lib/systemd/system/container-gitea-db.service.
cmv ~ # systemctl enable container-gitea.service
Created symlink /etc/systemd/system/default.target.wants/container-gitea.service → /usr/lib/systemd/system/container-gitea.service.
gitea再設定
設定完了後のgiteaの設定変更については、 /storage1/docker/storage/gitea/data/gitea/conf/app.ini を修正しPodを再起動してください
cmv ~ # podman pod restart cmv-gitea-pod
最初から設定しなおす場合
podを停止したのち、データディレクトリをすべて削除して、podを起動する
cmv ~ # podman pod stop cmv-gitea-pod
# rm -rf /storage1/docker/storage/gitea/postgresql/*
# rm -rf /storage1/docker/storage/gitea/*
cmv ~ # podman pod start cmv-gitea-pod
以上、gentooのPodmanでgiteaをセットアップするでした
Posted on 2022-01-25 07:28:22