Docker 差异postgres:12从postgres:12-高山

ttygqcqt  于 2022-12-18  发布在  Docker
关注(0)|答案(3)|浏览(106)

Docker hub包含多个版本(标签)的Postgres db,例如:

  • 12.3、12、最新版本
  • 12.3-高山,12-高山,高山-...

postgres版本12.3和12.3-alpine有什么不同?

7y4bm7vi

7y4bm7vi1#

Alpine是一个小得多的Linux版本,它比完整的postgres映像的容器更小。有人认为,由于它的小尺寸,alpine也更安全。尽管alpine的一个缺点是它包含的功能比运行完整Linux操作系统的docker映像少得多。

nhhxz33t

nhhxz33t2#

  • postgres:12.3基于Debian
  • postgres:12.3-alpine基于Alpine

主要是图像大小和内容不同:

vh0rcniy

vh0rcniy3#

在为数据库选择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-阿尔卑斯山

postgres=# select 'a' > 'A';
 ?column? 
----------
 t
(1 row)

postgres=# select 'a' < 'A';
 ?column? 
----------
 f
(1 row)

从postgres:13

postgres=# select 'a' > 'A';
 ?column? 
----------
 f
(1 row)

postgres=# select 'a' < 'A';
 ?column? 
----------
 t
(1 row)

相关问题