Docker outside of Dockerです。
ローカルで
docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock docker ash
コンテナ内で
echo $(hostname) > ./hostname.txt # hostname = 9efa8fda8add
以下のようなDockerfileをつくる
FROM centos ADD hostname.txt /tmp/work/
ビルド
docker build .
ローカルで確認してもコンテナ内でつくったイメージが確認できますね
docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 263a8bda9bb0 5 minutes ago 237MB
コンテナのホスト名のファイルいりでビルドされていますね。
docker run 263a8bda9bb0 cat /tmp/work/hostname.txt 9efa8fda8add
docker buildするときの環境依存をなくしていきたい。
ローカルはdocker-composeとか結構ありがち。