使用python-slim镜像遇到无法使用PostgreSQL的问题及解决方法
前言
之前不是把 DjangoStarter 的 docker 方案重新搞好了吗
一开始demo部署是使用 SQLite 数据库的,用着没问题,但很快切换到 PostgreSQL 的时候就遇到问题了…
报错
docker 启动之后,app 容器报错
排错
一开始我还以为是 psycopg2 库装不上,或者是在 python_builder 阶段的依赖没有正确复制到 final 阶段的容器,但后面改了几个地方,重新试了一下都不行。
接下来使用 python src/manage.py shell 进入 shell,测试一下能否导入 psycopg2 库
好的,经常被 docker 坑的人应该已经看出问题出在系统环境上了
不使用 slim 镜像换成普通的 python 镜像就正常了…
解决
OK,既然找出问题原因,那么就可以来着手解决了。
使用 psycopg2-binary
最简单的方法就是将 psycopg2 库换成 psycopg2-binary,这是一个预编译的 psycopg2 包,不需要编译环境,安装更简便。
手动安装 libpq 库
既然缺了 libpq 库,那就在 docker 镜像里安装。
这个方法我还没测试,又麻烦又不优雅
不同的python基础镜像
python镜像基于 Debian 系统,默认是用 Debian 的最新稳定版,也可以自己指定版本,比如 python3.11-slim-bookworm 就是指定用 Debian 12 ("bookworm") 作为基础镜像
- python3.11-slim-bookworm 基础镜像打包出来的镜像大小是424MB,python3.11-slim 打包出来也是这个大小
- 使用 python3.11 基础镜像打包出来就到 1.3G 了,大小直接翻了几倍
还可以选择 alpine 镜像,不过可能会遇到更多兼容性问题,我就不折腾了,心累。
小结
一般选 slim 镜像还是可以的,基于 Debian 不怎么需要担心兼容性问题
偶尔遇到小问题还是比较好解决的
alpine 镜像不一样的地方就很多了,太折腾了…
上一篇:postgresql查询今天、昨天、本周、本月、上月、今年、去年的时间以及计算时间之差
栏 目:PostgreSQL
本文标题:使用python-slim镜像遇到无法使用PostgreSQL的问题及解决方法
本文地址:https://fushidao.cc/shujuku/801.html
您可能感兴趣的文章
- 02-26请问包含哪些关键词的词条会涉及postgresql数据扩展名?
- 02-26我国在postgresql国产替代方面有哪些进展和挑战?
- 02-26关于PostgreSQL列标志,这些关键信息你了解多少?
- 02-26为何我的PostgreSQL连接速度如此缓慢?常见原因及优化方法解析
- 02-26如何快速上手使用PostgreSQL工具?详细入门教程揭秘!
- 02-26关于PostgreSQL时间类型的最小可能值,您知道多少?
- 02-26如何构建包含PostgreSQL存储过程与事务处理的完整词条示例?
- 02-26如何全面掌握使用postgresql客户端工具的详细教程及技巧?
- 02-26苹果电脑macOS下如何通过命令行安装PostgreSQL而非Postman?
- 02-25如何实现 PostgreSQL 数据库的简单扩容策略?详细解析与疑问解答
阅读排行
- 1请问包含哪些关键词的词条会涉及postgresql数据扩展名?
- 2我国在postgresql国产替代方面有哪些进展和挑战?
- 3关于PostgreSQL列标志,这些关键信息你了解多少?
- 4为何我的PostgreSQL连接速度如此缓慢?常见原因及优化方法解析
- 5如何快速上手使用PostgreSQL工具?详细入门教程揭秘!
- 6关于PostgreSQL时间类型的最小可能值,您知道多少?
- 7如何构建包含PostgreSQL存储过程与事务处理的完整词条示例?
- 8如何全面掌握使用postgresql客户端工具的详细教程及技巧?
- 9苹果电脑macOS下如何通过命令行安装PostgreSQL而非Postman?
- 10如何实现 PostgreSQL 数据库的简单扩容策略?详细解析与疑问解答
推荐教程
- 09-22navicat连接postgresql、人大金仓等数据库报错解决办法
- 02-01PostgreSQL和MySQL到底有什么区别?开发者必看对比指南
- 09-22PostgreSQL设置主键自增的方法详解
- 09-22postgresql查询今天、昨天、本周、本月、上月、今年、去年的时间以及计算时间之差
- 09-22在PostgreSQL中实现跨数据库的关联查询
- 09-22使用python-slim镜像遇到无法使用PostgreSQL的问题及解决方法
- 09-22Postgres copy命令导入导出数据的操作方法
- 02-01PostgreSQL客户端工具大揭秘,哪种最适合你的数据库管理需求?
- 01-31PostgreSQL下载指南,如何获取最新稳定版本?
- 09-22postgresql 日期查询最全整理
