2017-05-18 36 views
0

私はdockerイメージ内のスクリプトに実行可能なアクセス許可を与えて実行しようとしています。私はDockerfileにchmod + xを設定したくありません。 私は-cDockerは.shを実行可能にして実行します

ドッカ実行IMG/binに/ bashを試みた;/"chmodの+ X ../test/test.shを

を../test/test.shしかし、私が得ました" binに/ bashの:悪い通訳:忙しいテキストファイル」

と、このコマンドで私はちょうど2個のコンテナをすることはできません。

ドッカ実行-d IMGます。chmod + xの../test/test.sh

ドッキングウィンドウで実行-d IMG ../test/test.sh

=>コンテナ・プロセスは、 "幹部:\" 原因開始../テスト/ testing.sh \:

"許可が拒否されました"私はどういうわけかこの2つの容器を結びつける必要があります

答えて

0

Text file busyは何かが既にファイルを使用していることを意味します。

通常、これはあなたがcompletly別々の二つの新しいコンテナを作成、2番目のコマンドで

docker run --rm -it alpine sh -c 'echo "echo it works" > test.sh && chmod +x test.sh && ./test.sh' 

を働くだろう。あなたはdocker exec -it <container id or name> <command e.g. bash>

+0

事は何も私は新しいイメージを作成し、これはそれがERRで返さコマンド - 使用しようとしたIT-を使用していないです。それは、chmodコマンドでのみ使用することができます(私はエコーとセミコロンの前にchmodコマンドを置き換え、 "許可が拒否されました"を取得しました。)また、ドッカーを試してみました。-d img chmod + x ../test/testing.shそして、それはコンテナ../test/testing.shです - コンテナコンテナは実行されていません.. chmodでコンテナの切り離されたモードにもかかわらず.. –

+0

コンテナは 'docker run -d img chmod + x ../testの後に終了します/ test.sh'は実行中のプロセスがないため、 'sh test.sh'を使用したくない場合はchmodを使用する必要があります。 – Julian

0

[OK]を使用することができます実行している容器の中に何かを実行したい場合、私はそれを理解しました:最初

私はコンテナを作った:

docker run --name CONTAINER -dt IMAGE 

その後、私のコマンドをexecし:

docker exec CONTAINER chmod +x ../test/test.sh 

docker exec CONTAINER ../test/test.sh 
0

スクリプトをパラメータとして渡すだけの場合は、permsを設定する必要はありません。

docker run -d IMAGE /bin/bash ../test/test.sh 

(あなたがそれらを必要とする場合-iおよび/または-tを追加)

関連する問題