Dockerfileのテンプレートを作るCLIを作った話

初めに 個人開発で Docker を使っているのですが、毎回 Dockerfile を作るのが めんどくさくなったのでテンプレを用意しました。 とりあえずソースコードです https://github.com/komisan19/kuzira 使い方 initコマンドを叩くと空の Dockerfile が作成でき、 createコマンド+言語を指定するとテンプレートの言語が作成されます。 $ kuzira init $ ls Dockerfile Dockerfile --- $ kuzira create go create Dockerfile for Golang 仕組み CLI は以下のライブラリを使っていますが、テンプレートは embed を使ってみました。 https://github.com/urfave/cli go:embed Go1.16 から追加された機能です。 go:embed はその意味の通り埋め込みができます。1.16 以前もosやio/ioutilで読み込みなどできましたが、embed を使うとgo build時にバイナリに埋め込むことができます。 工夫点 上記でも記載しましたが、go:embed を使っています。 そのため、今回はこのような形でテンプレートファイルをおいて参照するようにしました。 . ├── README.md ├── action │ ├── cli.go │ └── cookbook │ ├── go-dockerfile │ └── python-dockerfile --- cookboo k内にテンプレートファイルを置くようにしました。 そして cli.go にこのような形で書きました。...

2022年08月27日 · 1 分 · komisan19