docker build 時に Text file busy で shell が実行できない対策
概要
Dockerfile 内に以下のように shell の実行を記述していました。
上記記述のある状態で docker build
実行した所、以下のようなエラーに遭遇しました。
What is Text file busy ?
書き込みのために現在開いている手続きのみの (共用テキスト) ファイルを実行しようとした場合や、実行中の手続きのみのファイルを書き込みのために開こうとしたり、削除しようとしたりする場合に発生します。
上記鑑みるとchmod +x hoge.sh
実行中に hoge.sh
を実行しようとしたが為に発生しているということ??
と推測。
環境情報
- Ubuntu 14.04.5 LTS \n \l
- Docker version 17.05.0-ce, build 89658be
- Base Image: ruby:2.5-alpine
対策
以下 sync 処理を追加し無事問題解決できました。
What is sync command ?
sync - システム管理コマンドの説明 - Linux コマンド集 一覧表
sync - システム管理コマンドの説明。sync - ディスク上のデータをメモリと同期させる。
参考
docker build 時に Text file busy で shell が実行できない対策
https://kenzo0107.github.io/2018/04/17/2018-04-18-fix-text-file-busy-on-docker-build/