这是我的docker-compose文件。有什么简单的方法可以安装postgres扩展吗?我正在尝试安装pg_trgm
。
编辑:我现在有两个dockerfiles和一个安装脚本,当我运行docker-compose up build
时,它似乎不起作用Internal server error: pq: operator does not exist: character varying % unknown
services:
db:
build:
context: .
dockerfile: db/Dockerfile
image: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_USER=x
- POSTGRES_PASSWORD=x
- POSTGRES_DB=x
api:
build:
context: .
args:
app_env: ${APP_ENV}
volumes:
- .:/go/src/x/y/z
ports:
- "8080:8080"
db/Dockerfile:
FROM postgres
COPY db/install-extensions.sql /docker-entrypoint-initdb.d
db/install-extensions.sql
CREATE EXTENSION IF NOT EXISTS pg_trgm;
3条答案
按热度按时间lh80um4z1#
试试这个
并从文件中删除db。
或者你可以写
那么
1.创建目录脚本
1.把你的.sql或.sh文件
1.移除已创建的容器docker-compose rm -v
1.启动docker docker-compose up --build
1.在日志中,您必须看到类似于以下内容的内容:
created_extension
pftdvrlh2#
我不知道为什么,但为了让它工作,我不得不使用一个shell脚本:
可能是因为我覆盖了默认的数据库和用户名。
zlhcx6iw3#
关于docker-entrypoint-initdb.d的答案很好,但对我来说不起作用,因为我已经有了一个数据库。实际上,在这种情况下,使用您的迁移系统添加扩展。
对于django,迁移看起来像这样: