場景描述:
鏡像來源,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. 重啟容器,如果啟動后,提示有些附件無法加載或者報錯,刪掉舊庫,重新建庫。