sam build --use-container
でうまくいかなかったので --debug
オプションを付けて実行してみる。
$ sam build --use-container --debug (中略) Fetching lambci/lambda:build-ruby2.5 Docker container image............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... Mounting /XXX as /tmp/samcli/source:ro,delegated inside runtime container Container was not created. Skipping deletion (中略) raise RuntimeError("Container does not exist. Cannot get logs for this container")
なんでdocker pullしてる風なのにContainer was not createdなの??というところで色々調べて試してみるも特に進捗無く。ふと一旦手元で docker run lambci/lambda:build-ruby2.5
してみたらなんか分かるかもと思ってやってみると、
$ docker run lambci/lambda:build-ruby2.5 Unable to find image 'lambci/lambda:build-ruby2.5' locally build-ruby2.5: Pulling from lambci/lambda d7ca5f5e6604: Pull complete 745afe780cd1: Extracting [==================================================>] 356.8MB/356.8MB 3cda603d3b93: Download complete 3de12da50428: Download complete docker: failed to register layer: Error processing tar file(exit status 1): write /usr/libexec/gcc/x86_64-amazon-linux/4.8.5/cc1: no space left on device. See 'docker run --help'.
新しい情報が増えた。dfしてもストレージに空きはあるように見えるので no space left on device.
ってのはよく分からんので、それをキーワードに調べているととりあえず要らないコンテナとか消せということなので何も考えずに消してみる。
ふむふむ。 別に大したものを実行してないしこれでそんなにストレージ?が空くとは思えないんだけど……。
$ docker run lambci/lambda:build-ruby2.5 Unable to find image 'lambci/lambda:build-ruby2.5' locally build-ruby2.5: Pulling from lambci/lambda d7ca5f5e6604: Pull complete 745afe780cd1: Pull complete 3cda603d3b93: Pull complete 3de12da50428: Pull complete Digest: sha256:99c6630faf749f99d18cf7369fe9a25551b1214256c69364126cf9de62bbb1d2 Status: Downloaded newer image for lambci/lambda:build-ruby2.5 docker: Error response from daemon: No command specified.
うまくいった、不思議。Dockerの仕組みをちゃんと分かっていればなにか分かるのかも知れない。
再度 sam build --use-container
したら普通にうまくいった、良かったですね。
ググる前に自分でちゃんと手を動かしたほうが早いパターンだった。