PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como criar a extensão postgres dentro do container?


Está falhando porque o Postgres não está sendo executado no contêiner durante a compilação, ele só é iniciado no CMD quando um contêiner é executado.

O script de ponto de entrada para a imagem do Docker tem suporte para executar etapas de configuração - qualquer arquivo .sql ou .sh no /docker-entrypoint-initdb.d diretório será executado quando o contêiner for iniciado.

Então você pode fazer isso colocando sua configuração de extensão em um script SQL e copiando o script na imagem no diretório init:
> cat hstore.sql
create extension hstore
> cat Dockerfile
FROM postgres:9.5
COPY hstore.sql /docker-entrypoint-initdb.d

Quando você construir essa imagem, o script SQL estará no lugar certo para ser executado, então sempre que um container rodar a partir da imagem ele instalará a extensão.