Docker - 如何在Docker容器中安装扩展或插件?

3

我正在使用posgres:10.0镜像在容器中运行PostgreSQL。我的docker-compose.yml看起来非常简单:

version: "2"
services:
  db:
    image: "postgres:10.0"
    environment:
    - POSTGRES_USER=postgres
    - POSTGRES_DB=postgres
    volumes:
    - ./volumes/postgresql/postgresql.sh:/docker-entrypoint-initdb.d/postgresql.sh
    ports:
    - 5432:5432

postgresql.sh:

#!/bin/bash

echo wal_level=logical              >> $PGDATA/postgresql.auto.conf
echo max_replication_slots=1        >> $PGDATA/postgresql.auto.conf
echo host replication all all trust >> $PGDATA/pg_hba.conf

为了我的项目,我们将开始使用Multicorn扩展程序,请参见http://multicorn.org/。要编译和安装它,我需要执行以下操作:

git clone git://github.com/Kozea/Multicorn.git
cd Multicorn
make && make install

然后,我可以添加一个 multicorn.sql 脚本并将其添加到 /docker-entrypoint-initdb.d/ 目录中,这将在 Docker 容器启动时调用:

CREATE EXTENSION multicorn;

但是我怎样能在Docker容器内安装Multicorn呢?理想情况下,我希望继续使用posgres:10.0而不是自己发明/创建版本,因为我不想承担维护的麻烦。


2
我认为你需要维护自己的Docker文件构件。但是我很好奇这个世界会对此有何看法。 - Robert Moskal
你找到了一个简单的方法来做这件事了吗? - navossoc
1个回答

0

关于多阶段构建:是否可以创建一个安装了PostgreSQL的临时容器,在该临时容器中进行扩展的make/make install操作,然后将扩展从/usr/lib/postgresql/x.y/lib/...复制到目标/最终容器的相同目录中? - user4444533

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接