Dockerで詰まったところをまとめていく
気が向いたり、見つけたりしたら追記していくと思う。
もしかしたらgithubのtilにまとめちゃって更新しないかもしれない。
sourceコマンドが使えない
エラーメッセージ
/bin/sh | source: not found
Dockerのビルドでは/bin/shが使われていた。
ubuntuでは/bin/sh -> /bin/dashになっていた。
source
コマンドや.
コマンドはbashの組み込み(?)関数なので、そういう設定が必要
dockerfile
SHELL ["/bin/bash", "-o", "pipeline". "-c"]
無理矢理/bin/sh
を/bin/bash
に向かせるシンボリックリンクを作ったりするとhadolintに怒られるよ
- DL4005
- SC2039
この辺のエラー
テキストファイルがビジー云々
エラーメッセージ
/bin/sh: ./configure: /bin.sh: Text file busy
/bin/sh: ./configure: /bin/sh: 誤ったインタプリタです:テキストファイルがビジー状態です
configureファイルの中とかでchmod
していないですか?
chmod
コマンド後にsync
コマンドを使うと解決します。
dockerfile
RUN find ./ -type f -name * | xargs sed -i /^chmod/a sync
これだと行頭のchmod
コマンドしか見つけられない。
パイプしてるようなのまで見つけようと思ったらsed
コマンドの内容を変えてね
参照したIssue: Running chmod on file results in 'text file busy' when running straight after. #9547