2015-09-13 8 views
7

パラメータをドッカーのCMDに渡したいとします。 Dockerfileの内容はDocker CMDのコマンドライン引数

FROM ubuntu:15.04 
CMD ["/bin/bash", "-c", "cat", "$1"] 

ある場合たとえば、その後、私は次のように実行したい:

docker build -t cat_a_file . 
docker run -v `pwd`:/data cat_a_file /data/Dockerfile 

私はDockerfileの内容が画面に印刷されたいです。しかし、その代わりに、ドッカーは/data/Dockerfileが、これは回避することができますどのようにエラー

Error response from daemon: Cannot start container 7cfca4: 
[8] System error: exec: "/data/Dockerfile": permission denied 

を与え、CMDをオーバーライドする必要がありますスクリプトがあると思いますか?

答えて

9

ENTRYPOINTをこのようなものに使用します。指定されたENTRYPOINTには、CMDのパラメータが追加されます。

だから、あなたがDockerfileを更新した場合:あなたが望むよう

FROM ubuntu:15.04 
ENTRYPOINT ["/bin/bash", "-c", "cat"] 

物事は動作するはずです。

また、あなたが$1を必要としないとして、あなたはそれを変更することができる必要があります:

私はこれのいずれかをテストしていませんが、それが動作しない場合は私に知らせて。

+0

私はそれをテストしただけで動作します。本当にありがとう。 – user14717

+0

もっと複雑なスクリプトを作成できるだけですが、 '$ 1'形式の引数を使う正しい方法は何ですか? – user14717

+0

おそらく、そのような場合に環境変数を使用することをお勧めします。 '$ 1'などは使用できません。 –

関連する問題