现象
当使用 docker 部署官方 canal-server 镜像(canal/canal-server:v1.1.0)并成功启动后,调用
docker restart
会有以下错误信息:
mv: cannot stat `/home/admin/canal-server/conf/example': No such file or directory
原因
检查 docker 启动脚本,发现 https://github.com/alibaba/canal/blob/master/docker/image/admin/app.sh 的 84-92 行引发的错误:
destination=perl -le 'print $ENV{"canal.destinations"}'
if [[ "$destination" =~ ',' ]]; then echo "multi destination:$destination is not support" exit 1; else if [ "$destination" != "" ] && [ "$destination" != "example" ] ; then mv /home/admin/canal-server/conf/example /home/admin/canal-server/conf/$destination fi fi
这里的行为是每次启动时,如果指定了 destination 且 destination 的值不是 example,会把
/home/admin/canal-server/conf/example
目录重命名为指定的 destination 值。 由于我指定了 destination 且值不是 example,所以这个行为导致了执行
docker restart
时,由于容器内已经没有 example 文件夹,所以容器无法启动。
问题
各位大佬是如何解决这个问题的?自己打镜像还是有其他姿势?
原提问者GitHub用户fotguuu
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。