docker-compose 记录一个让人抓狂的错误
执行一个包含多个service的docker-compose.yml的时候,出现以下错误:
strconv.Atoi: parsing "": invalid syntax
看字面上的意思,很明显就是yml文件有语法问题。
在多次修改无果后,百度了这个问题,终于找到了能够解决的办法。
docker-compose down --remove-orphans
使用上面命令删除一些未知有问题的容器,就能够解决上面的问题。
事后,仔细想想,在第一次执行docker-compose up -d的时候就未能正常执行完成,疯狂Ctrl+C,产生了一些有问题的容器,但是docker-compose down删除不掉。
同样一个场景下,遇到一个mysql的service,无法启动容器,报如下错误:
Cannot create redo log files because data files are corrupt or the database was not shut down cleanly after creating the data files.
因为docker-compose.yml文件里,定义了volume ,在volume里产生了一些数据,然后在下一次up的时候,导致把错误的文件挂载进容器内,产生上面的错误。最后删除mysql的volume ,重新up就解决了。
这两个问题的原因可能还是因为在第一次up的时候,等待过久疯狂Ctrl+C 产生的脏数据导致的。做事情还是不能心急。