概要
tar.gz で圧縮したファイルを使って docker イメージを作ろうとしたところ、以下のようなエラーが出てしまった。
$ docker build - < hoge.tar.gz
Sending build context to Docker daemon XXX MB
Error response from daemon: Cannot locate specified Dockerfile: Dockerfile
原因
hoge.tar.gz のルート直下に Dockerfile が見つからずに怒られている。
tar.gz の作り方が悪かった様子
$ tar zcvf hoge.tar.gz hoge
これだと tar.gz ファイルのルート直下に hoge
というディレクトリができてしまう
$ tar tf hoge.tar.gz
hoge/
hoge/Dockerfile
hoge/...
解決
tar.gz コマンドの叩き方を変更
$ cd hoge
$ tar zcvf hoge.tar.gz .
$ tar tf hoge.tar.gz
./
./Dockerfile
./...
これで tar.gz のルート直下に Dockerfile が置かれるので、正常に実行できるようになった
$ docker build - < hoge/hoge.tar.gz
所感
docker build - <
のググラビリティが低くてちょっと大変だった…