微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 docker images 获取 Dockerfile

通过docker image 获取到 dockerfile

docker history --format {{.CreatedBy}} --no-trunc=true $DockerImage |sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" | tac

--format {{.CeratedBy}}输出 CREATE BY 这一列
--no-trunc=true 完成输出命令
sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" 替换命令执行的bash前缀
tac 由于history中的命令是层级的,越晚运行的命令越在上面,为了更方便的阅读,使用tac命令让其翻转

cat > Obtain_dockerfile.sh <<-'EOF'
#!/bin/bash
export PATH=$PATH
if [ $# -eq 1 ];then
		docker history --format {{.CreatedBy}} --no-trunc=true $1 |sed "s/\/bin\/sh\ -c\ \#(nop)\ //g"|sed "s/\/bin\/sh\ -c/RUN/g" | tac
	else
		echo "sh Obtain_dockerfile.sh $DOCKER_IMAGE"
fi
EOF

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐