alchemistarkの日記

やったことのメモ

Cronicle doasで無理やり昇格

いけた…
Linuxチョットデキル方々には笑われそうだが管理者権限与えてdocker versionまで動作を確認した。

最終的なdocker-composeはこうなった

version: "3"
services:
  cronicle:
    entrypoint: |
      sh -c "
        apk update &&
        apk add docker-cli doas &&
        echo 'permit nopass cronicle' | tee -a /etc/doas.conf &&
        exec manager"
    image: elestio/cronicle:latest
    restart: always
    hostname: cronicle
    environment:
      - CRONICLE_manager=1
      - CRONICLE_secret_key=[適当な文字列]
    ports:
      - "3012:3012"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /mnt/pool/dataset/cronicle/data:/opt/cronicle/data
      - /mnt/pool/dataset/cronicle/logs:/opt/cronicle/logs
      - /mnt/pool/dataset/cronicle/conf/config.json:/opt/cronicle/conf/config.json
      - /mnt/pool/dataset/cronicle/plugins:/opt/cronicle/plugins
      - /mnt/pool/dataset/cronicle/workloads/app:/app

これでdoas docker exec ~でコマンド打てるはず。多分。

ありがとうgemini先生とチャッピー君

・dockerコマンドを叩くためにdocker-cliを導入
・docker.sockにアクセスする権限を得る為にdoasを導入
・doas.confにcronicleユーザーを追加
・元々のentrypointのmanagerを実行

という流れ。
もっと真っ当な方法でdocker.sockにアクセスできるならそれがいいんだが…
ホスト側でUID:1000だかGID:1099だかでアクセスできるようにしてやればいいとは思う。
 →試してみたけどdockerグループ*1にはユーザーを追加できないみたい。

*1:TrueNASのビルドイングループ