场景描述:
镜像来源,dockerhub odoo官方镜像:https://hub.docker.com/_/odoo
odoo镜像运行一段时间后,出现下述异常,可能是触发某个未知bug;该现象在生产部署的时候出现过一次,为防止再次出现,记录如下分析及处理过程。
执行命令:docker exec -u root -it odoo /bin/bash
日志出现如下错误,无法进入容器:
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"/bin/bash\": permission denied": unknown
尝试命令:docker restart odoo即:docker odoo不能正常启动,
没有输出错误,但是: docker ps 看不到运行中的容器。
处理过程:
参考地址:
https://blog.csdn.net/kai172142xiang/article/details/81436485
https://www.jianshu.com/p/b816ddbf68d0
https://www.jianshu.com/p/7b8ebd995313
上述参考地址,只是提供了几个类似异常的处理思路,多次尝试并未解决我们的问题,
于是,先采用快速重新搭建的临时方案来处理:
步骤:
1 先确认odoo容器确实没有启动
2 原数据库镜像不需要修改或删除,执行如下命令,新建odoo1容器
数据库容器提供参考,不要执行: docker run -d -p 5432:5432 -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=******* -e POSTGRES_DB=postgres --name db -t wms_db_v2:2.0
新建odoo1容器: docker run -d -p 8069:8069 --name odoo1 --link db:db -t wms_app_v2:2.0
3. 启动后,将原odoo中的代码及docker_file文件copy到新的容器
4. 进入新容器,修改/etc/odoo/odoo.conf文件配置,指定自定义代码路径,及docker_file路径
5. 重启容器,如果启动后,提示有些附件无法加载或者报错,删掉旧库,重新建库。