Pitagora / Workflow Meetup Japan
サーバtazro.ohta [at] chiba-u.jp
途中参加、途中退出は自由です。初めて参加される方はぜひ 過ごし方ガイド をご覧ください。
Time | |
---|---|
13:00-13:15 | 今日の作業確認 |
13:15-17:00 | 開発とディスカッション |
17:00-18:00 | ラップアップ |
18:00- | 有識者会議 |
-y
つけないから Yes はしてあげないといけないというjournalctl -u nginx.service --since "3minutes ago"
とかで雑検索できるCAP_NET_BIND_SERVICE
(i.e., 特権ポートを使える権限) を与えて rootless podman で特権ポートを使いたい
--cap-add
はコンテナ内の Capability に関するオプションなので用途が異なるCAP_NET_RAW
が必要な ping が誰でも実行できるのはこれのおかげだったCAP_NET_BIND_SERVICE
だけ渡して一般ユーザー権限で rootless podman の実行ができる!…はずなんだけど…sudo capsh --caps="cap_setpcap,cap_setuid,cap_setgid+ep cap_net_bind_service+eip" --user=$USER --keep=1 --addamb=cap_net_bind_service -- -c "podman run --rm --network=host -v $PWD:$PWD docker.io/svenstaro/miniserve -p 80 $PWD"
-- -c
以下を "podman ... miniserve -p 80 ..."
ではなく、ホスト上の miniserve
を使って "miniserve -p 80 ..."
とすると動く
- つまり Ambient Capability の与え方を間違っているわけではないconmon
は podman
の単純な子プロセスではなさそう、ということがわかってきた
# 以下は `podman run ... svenstaro/miniserve -p 8080 ...` した場合
$ pstree
systemd─┬─2*[agetty]
├─init-systemd ...─┬─conmon───miniserve───17*[{miniserve}] # なぜか systemd 直下に conmon がいる
│ ├─zsh───podman───14*[{podman}] # zsh 直下の podman が実行したコマンド。下にぶら下がってる podman*14 は誰やねん
podman
が conmon
を実行する過程で CAP_NET_BIND_SERVICE
が失われている
- getpcaps $PID
などで確認できる[東北新幹線 連結部分外れる | NHK](https://www3.nhk.or.jp/news/html/20250306/k10014741221000.html) |
-x
: 拡張行表示-e
: 最新行から表示-b
: 最新起動時からのログのみ表示
-b 1
: 1つ前の起動時のログのみ表示(那) JTCはAI開発ツールは許容されますか?(案件によっては当然制約受けますよね…)
次回参加したときにお尋ねします
(福)僕もClaude Sonnetの話題を見ててChatGPTからClaudeに乗り換えようか迷っていたりするので気になります。GPT4.5の性能次第な気はしますが。
VSCodeのLiveShare以来の衝撃があるかもしれない。
ls -lar
からしてくれる。