PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да създадете разширение postgres вътре в контейнера?

Не успява, защото Postgres не се изпълнява в контейнера по време на компилацията, стартира се само в CMD когато контейнер работи.

Скриптът на входната точка за изображението на Docker има поддръжка за изпълнение на стъпки за настройка - всякакви .sql или .sh файлове в /docker-entrypoint-initdb.d директория ще бъде изпълнена, когато контейнерът стартира.

Така че можете да направите това, като поставите настройката на разширението си в SQL скрипт и копирате скрипта в изображението в директорията init:

> cat hstore.sql
create extension hstore
> cat Dockerfile
FROM postgres:9.5
COPY hstore.sql /docker-entrypoint-initdb.d

Когато изградите това изображение, SQL скриптът ще бъде на правилното място за изпълнение, така че всеки път, когато контейнер се изпълнява от изображението, той ще инсталира разширението.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оптимизирайте PostgreSQL за бързо тестване

  2. Как автоматично да затворя неактивни връзки в PostgreSQL?

  3. Преглед на новите съхранени процедури в PostgreSQL 11

  4. psycopg2 еквивалент на mysqldb.escape_string?

  5. не може да създаде разширение без роля на суперпотребител