Docker CMDにパラメーターを渡します。たとえば、Dockerfile
の内容が
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
の内容を画面に出力したいと思います。しかし、代わりに、Dockerは/data/Dockerfile
はCMD
をオーバーライドする必要があるスクリプトで、エラーが発生します
Error response from daemon: Cannot start container 7cfca4:
[8] System error: exec: "/data/Dockerfile": permission denied
どうすればこれを回避できますか?
このようなものにはENTRYPOINT
を使用します。 CMD
パラメーターは、指定されたENTRYPOINT
に追加されます。
そのため、Dockerfileを次のように更新すると:
FROM ubuntu:15.04
ENTRYPOINT ["/bin/bash", "-c", "cat"]
物事はあなたが望むように動作するはずです。
また、$1
は不要なので、次のように変更できるはずです。
FROM ubuntu:15.04
ENTRYPOINT ["/bin/cat"]
私はこれをテストしていないので、うまくいかない場合はお知らせください。