Docker:在执行cp之前删除并创build文件夹
是否有可能创build一个文件夹,如果它不存在之前复制它?
docker cp /opt/project/build/core/bundle target_container:/opt/project/build/core
通常只有/opt/project/build/
existing。
我想要做的是复制文件bundle
并replace现有的文件夹及其文件,如果它是存在的。 如果不存在,则应创build文件夹core/bundle
并复制文件。
docker exec
将允许您在容器中运行命令。
docker exec $target_container mkdir -p /opt/project/build/core docker cp /opt/project/build/core/bundle $target_container:/opt/project/build/core/
注意尾部/
在cp
告诉docker将源复制到core/
目录而不是命名bundle
– > core
更换
如果想完全“replace”现有的bundle
目录,而不是用cp
添加文件,那么你需要从删除开始。
docker exec $target_container sh -c \ 'rm -f /opt/project/build/core && mkdir -p /opt/project/build/core'
尽pipe不那么直观的select,
tar xf - <dir> | docker exec -i <container> tar xf -