我正在使用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/。要进行/ make install,我需要这样做:
git clone git://github.com/Kozea/Multicorn.git
cd Multicorn
make && make install
然后,我可以添加一个multicorn.sql
脚本并将其添加到/docker-entrypoint-initdb.d/
目录中,该目录将在Docker容器启动时调用:
CREATE EXTENSION multicorn;
但是如何在Docker容器中制作/ make multicorn?理想情况下,我想继续使用posgres:10.0
而不是发明/创建我自己的版本,因为我不想继承维护麻烦。
答案 0 :(得分:1)
你应该创建一个自己的Dockerfile - 这就是Dockerfiles的意义;)否则你必须在启动时用脚本做一些黑客攻击或类似的东西。不要那样做......
另一个快速说明:如果您想从源代码构建它,您可能需要查看它并使用多阶段docker构建:https://docs.docker.com/engine/userguide/eng-image/multistage-build/#use-multi-stage-builds