皆さんこんにちは!
まだまだ毎日投稿しているのですがネタ尽きないっす。
なんならもっと書きたいぐらい。
色々記事書いてるので、ぜひ時間のある方はほかの記事もご覧ください!
さて、今回はDockerの記事です。
Dockerで作ったイメージをAWSのECRにプッシュしようとしたら以下のような警告が表示されました。
[+] Building 0.1s (2/2) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 2B 0.0s
=> CANCELED [internal] load .dockerignore 0.0s
=> => transferring context: 0.0s
failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount119702719/Dockerfile: no such file or directory
明らかにビルドできてない気がする。
実際にECSでこのイメージを使ってもエラーが表示される。
ってことで半日くらいかかった末にようやく答えが出た。
僕自身WindowsでDockerの開発を行っているのですが、Windowsだとこの現象が起きるらしいです。
悲し。。。
なので、docker-compose
でビルドしちゃえばいいんじゃねって思って半日近くの時間を費やしようやく答えを見つけた!
どうやらdocker-compose
はデフォルトではBuildkit
に対応していないらしい。
なので、docker-compose
でBuildkitを有効にする魔法のコマンドを打つ!!!
###Mac###
COMPOSE_DOCKER_CLI_BUILD=1 docker-compose build
###Windows###
set "COMPOSE_DOCKER_CLI_BUILD=1" & set "DOCKER_BUILDKIT=1" & docker-compose build
COMPOSE_DOCKER_CLI_BUILD=1
という環境変数を追加してあげることでBuildkitを使用してコンテナをビルドできるそうです。
Dockerは習い始めて約2週間、AWSは約1週間くらいなのですが、なれるまでに時間がかかりそうですね。
以上、「[Docker]Buildkitを「docker-compose build」で使う方法」でした!
良ければ、LGTM、コメントお願いします。
また、何か間違っていることがあればご指摘頂けると幸いです。
他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!
Thank you for reading