Docker 集线器包含 Postgres 数据库的多个版本(标签),例如:
postgres 12.3 版和 12.3-alpine 之间有什么区别?
Sat*_*net 11
Alpine 是 Linux 的一个小得多的版本,它导致比完整的 postgres 映像更小的容器。有人认为,由于其体积小,高山也更安全。尽管 alpine 的一个缺点是它包含的功能比运行完整 Linux 操作系统的 docker 映像少得多。
小智 10
为数据库选择 docker 镜像时应该非常小心。事实上,Alpine 和 Debian 中的 PostgreSQL 使用不同的排序规则。
某些 Alpine 图像使用不支持 LC_COLLATE 的 musl 库版本 (1.1.16),因此尽管设置了 LANG 变量,数据仍将按字节排序 (C)。
LC_COLLATE 应添加到 musl 版本 1.1.17
但这可能会造成灾难性的问题:一旦 musl 支持 LC_COLLATE,所有 Postgres VARCHAR 索引都将崩溃。
更多讨论见:
我自己尝试了一下:
来自 postgres:13-alpine
postgres=# select 'a' > 'A';
?column?
----------
t
(1 row)
postgres=# select 'a' < 'A';
?column?
----------
f
(1 row)
Run Code Online (Sandbox Code Playgroud)
来自 postgres:13
postgres=# select 'a' > 'A';
?column?
----------
f
(1 row)
postgres=# select 'a' < 'A';
?column?
----------
t
(1 row)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3212 次 |
| 最近记录: |