DockerでボリュームをマウントしてからDockerfile上でコマンドを叩きたいとき

今回はDockerを使っているときにボリュームをマウントしてからDockerfile上でコマンドを叩きたいときどのようにすれば良いのかについてお伝えしていきます。



DockerでボリュームをマウントしてからDockerfile上でコマンドを叩きたいとき

docker-compose.ymlに次の記載があったとします。

例えば、Vue.jsの場合について話させていただくと、docker-test-app/test-appの直下にpackage.jsonがあり、Dockerfileでpackage.jsonを元にnpm installをしたかったとしましょう。

何も考えずにDockerfileに
RUN npm install
のように記述すると、コンテナを作成してからボリュームをマウントするため、pacakge.jsonがないと言われてしまいます。

結論を言うと、Dockerfile中でCOPYを使ってpackage.jsonを認識させてあげるようにしましょう。

こうすることで、ある意味コンテナの作成中にボリュームをマウントさせたことになり、既存のpackage.jsonのファイルなどを元にコンテナを作成することができます。

やや伝わりにくかった部分もあると思いますが、かなり使えるテクニックなので覚えておきましょう。

終わりに

今回はDockerを使っているときにボリュームをマウントしてからDockerfile上でコマンドを叩きたいときどのようにすれば良いのかについてお伝えいたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Docker

Posted by ちこ