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

はじめまして

お茶の国静岡で、焼酎のお茶割なんか罰当たりで飲んだことはありません、常に一番搾りを嗜む静岡極東のBBQerです、最近まわりのエンジニアの方々がお料理を上手にやっている姿を恨めしそうに横目に見ながら、軟骨ピリ辛チクワを食べています、みなさんよろしく。

Posted

Amazon

tags

家系 日本酒池 広井酒店 やがら やっぱた 刺身 丸干し 鯵 東京マラソン fpm php82 servant thread spawn Rust Oracle Linux 8 microcode firmware linux openzfs zfs gitea 麒麟 真野鶴 金鶴 日本酒 docker oracle pod podman cli virtualbox VirtualBox epub mobi calibre mask lens ワンライナー php 海 redmine Linux Oracle Map OMap omap map 夏 BBQ カテゴリ管理 カテゴリ timestamp date oracle database string 麦焼酎 ダービー process 磨き蒸留 広井酒店、日本酒 芋焼酎 酒 焼酎 ゆるキャン 広井酒店、日本酒池 spring framework java persistent spring session session spring hdbc-odbc persistent-odbc odbc day utctime スィート レマンの森 elm初期化 elm バイク xlr80 esqueleto database xl2tpd strongswan vpn l2tp ipsec 正月 ゲーム grub nginx systemctl portage 豚骨 圧力鍋 yesod-auth-hashdb yesod-auth