Closed kachick closed 2 years ago
公式ガイドの手順で入るバージョンが微妙に古い。自分は先に https://github.com/sylabs/singularity/releases 見てたので適当に書き換えて入れたけど、更新しようとしたら自動取得みたいな感じだった。
https://github.com/sylabs/singularity-userdocs/blob/13adde777b246f3a2bfe9b4d4fb5e72a313ef9e6/quick_start.rst?plain=1#L128-L131 https://github.com/sylabs/singularity-userdocs/blob/d504ebd49eb936e351829135c7e788d34eb73f94/replacements.py#L14-L15
最新版がリリースされたのが 5日前なのにドキュメントの最終更新日が2ヶ月前なので、自動更新にずれが出てそう。 https://github.com/sylabs/singularity-userdocs/commits/d504ebd49eb936e351829135c7e788d34eb73f94
docker-compose 的なことは出来ないのでは・・・?と思ったら有るらしい https://github.com/singularityhub/singularity-compose
https://github.com/kachick/lishogi-devenv という、lishogi をローカルで動かすための定義とか手順書をまとめたようなリポジトリを作った。そこで(久しぶりに)必要になった MongoDB は SSPL という unfree なライセンスになったので、nixpkgs には入っていても cachix にバイナリキャッシュが置かれていないっぽい。こうなると毎回ビルドするの大変すぎる事もあり、コンテナで走らせることにした。
気軽に動かしやすいという認識なので、 nixpkgs から singularity をインストールするようにしたらめっちゃ楽。 しかし singularityhub/singularity-compose はずっと更新されていない事もあってチマチマターミナル上げまくったり、macos で動かない等々あってまぁやっぱ docker とかメジャーな方に色々乗っかっておいたほうが楽な気はしてきた。
デーモンレスはデーモンレスでもpodman使うようになった。デフォルトでsystemd対応なのがnixと相性いいので。。。
https://github.com/zricethezav/gitleaks とか https://github.com/secretlint/secretlint を試そうとしたんだけど、go はともかく nodejs が常に求められるの嫌だなーと思ったので久しぶりにというか、WSL2には初めて docker を入れようとした。 Docker Desktop が有料になった関連からか docker-ce 側を推奨される記事とか諸々見つつ入れてみたけど、どうにも daemon が立ち上がらない・・・ 所謂
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
なんだけど、 嘘か真か https://docs.docker.com/desktop/windows/wsl/ 見ると 「WSL2 環境はナイスだよ、でも Docker Desktop 使おうね」(~意訳~違訳) とある。 そうなんだ・・・うーん、どうせ面倒な思いするなら前からちょっと気になってた singularity を使ってみるかと思った。https://github.com/sylabs/singularity
インストール面倒くさそうな気がしてたんだけど、docker 側もワンコマンドで入るわけじゃないし同じぐらいでは。 むしろユーザー設定とかデーモン設定飛ばして使える分楽まであった。 https://docs.sylabs.io/guides/latest/user-guide/quick_start.html#quick-installation-steps では 17 台が使われてたけど、 asdf で入れてた 18.x 台の golang でも行けた。 ただ手順内で libseccomp-dev と pkg-config を入れているにも関わらず
Package libseccomp was not found in the pkg-config search path.
で怒られる。 ここだけちょっと詰まったけど、brew install libseccomp
したら通った。多分自分が Linuxbrew 使ってるから色々怪しい環境になってるんだろうな・・・操作感は楽。sudo 無しで起動できて pwd がデフォルトでマウントされるので、自分みたいにいつまで経っても docker の事を覚えられないカジュアルユーザーにも便利に感じた。
デプロイに使うとかじゃなくてサクッと docker image で起動したい物がある時にはとても便利なのでは。