概要
DockerfileでつかえるADD命令をつかってローカルにあるtarファイルをコンテナ内に展開してみたいと思います。
事前準備
こんなかんじのDockerfileを用意する。
FROM centos ADD test_archive.tar /root/
用意したアーカイブはこんなかんじ。
ADDで指定するアーカイブはDockerfileとおなじディレクトリに格納しておきます。
$ tar tvf test_archive.tar -rw-rw-r-- ec2-user/ec2-user 7 2018-08-01 13:56 wawawa.txt -rw-rw-r-- ec2-user/ec2-user 7 2018-08-01 14:21 sasasa.txt
やってみる
事前準備でつくったDockerfileをもとにビルドします。
$ sudo docker build -t add_test ./docker_file_dir/ Sending build context to Docker daemon 12.8kB Step 1/2 : FROM centos ---> 49f7960eb7e4 Step 2/2 : ADD test_archive.tar /root/ ---> eb909b976b8f Successfully built eb909b976b8f Successfully tagged add_test:latest
つくったコンテナの中身を確認してみると以下のようにアーカイブが展開されて中身がコンテナに格納されていることがわかります。
$ sudo docker run eb909b976b8f ls -l /root/ total 12 -rw-rw-r-- 1 1000 1000 7 Aug 1 14:21 sasasa.txt -rw-rw-r-- 1 1000 1000 7 Aug 1 13:56 wawawa.txt
おわりに
にたような機能を持つ命令としてCOPYがあります。
そっちではアーカイブの展開はできません。
tarを展開する必要があればADD
それ以外はCOPYをつかうのがベストプラクティスっぽいです。
- 作者: Adrian Mouat,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/08/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る