【docker】docker image build でエラーになった。
CentOS + Apache + PHP + ODBC ドライバ入りのコンテナの作成で悪戦苦闘中。dockerfile 修正→ビルドエラー→原因調査を繰り返している。
ビルドエラーになると、作成途中のコンテナが残っている。ビルドが失敗した原因を調査する為に作成途中のコンテナをコミットし、イメージを作成後、それを実行し、原因を調査する。それを以下のような手順で実施した。
①コンテナの一覧を表示する
azurite:websv hoge$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d94e2c66c97e 3adf425ebd1b "/bin/sh -c 'yum ins…" 15 minutes ago Exited (1) 15 minutes ago stoic_pascal
08290d0d3a4d 2f0b7e90d045 "/bin/sh -c 'yum ins…" 26 minutes ago Exited (127) 25 minutes ago naughty_dewdney
c6858f531029 32ad066318bd "/bin/sh -c 'cd /tmp…" 33 minutes ago Exited (127) 33 minutes ago awesome_ramanujan
②対象のコンテナをコミットし、イメージを作成する
azurite:websv hoge$ docker container commit d94e2c66c97e badcontainer
sha256:e6b55ba6c3058373c7eebbbac47207045ef16cfa13f516396148ba4ef0843d23
※badcontainer は任意のイメージ名です
③イメージからコンテナを作成し、シェルで操作できるようにする(シェルを抜けたら、コンテナは削除)
azurite:websv hoge$ docker run --rm -it badcontainer bash
これでコンテナ内の状態が確認できる
おわり