postgresql - Docker-Compose 和 Postgres 扩展
问题描述
这是我的 docker-compose 文件。有没有简单的方法来安装 postgres 扩展?我正在尝试安装pg_trgm
.
编辑:我现在有两个 dockerfile 和一个安装脚本。我跑步时它似乎不起作用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"
数据库/Dockerfile:
FROM postgres
COPY db/install-extensions.sql /docker-entrypoint-initdb.d
db/install-extensions.sql
CREATE EXTENSION IF NOT EXISTS pg_trgm;
解决方案
尝试这个
FROM postgres
COPY ./install-extensions.sql /docker-entrypoint-initdb.d
并从您的文件中删除 db 。
或者你可以写
version: "3.1"
services:
db:
image: postgres:9.6
restart: always
environment:
POSTGRES_PASSWORD: unit
POSTGRES_USER: unit
POSTGRES_DB: unit
ports:
- 5432:5432
volumes:
- ./scripts:/docker-entrypoint-initdb.d
然后
- 创建目录脚本
- 把你的 .sql 或 .sh 文件
- 删除创建的容器 docker-compose rm -v
- 启动 docker docker-compose up --build
- 在日志中,您必须看到如下内容:
推荐阅读
- mysql - 如何从节点js中的mysql db中找出给定时间的时区
- python - 必须使用 Subscription 实例作为第一个参数调用未绑定方法 delete() (Stripe API)
- flutter - 如何在 onComplete 函数后更改小部件本身的参数
- python - 使用 For Each 循环从列表中删除项目的 Python 逻辑错误
- git - 文件的 Git 权限
- asp.net - Asp.net 核心 web api 应用程序,startup.cs 文件中发生错误
- javascript - TypeError: (0 , _index.default) 在使用 Babel 作为 Rollup 包中的库时不是函数
- python - Plesk + Python Flask - 在第二个网站上配置代理不起作用
- firebase - 如何在 2 个 vue-native 应用程序之间进行通信
- java - 从 OPC 服务器循环收集数据