PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come creare un'estensione postgres all'interno del contenitore?

Non riesce perché Postgres non è in esecuzione nel contenitore durante la compilazione, è solo avviato nel CMD quando viene eseguito un container.

Lo script del punto di ingresso per l'immagine Docker supporta l'esecuzione dei passaggi di installazione:qualsiasi file .sql o .sh nel /docker-entrypoint-initdb.d verrà eseguita all'avvio del contenitore.

Quindi puoi farlo inserendo la configurazione dell'estensione in uno script SQL e copiando lo script nell'immagine nella directory init:

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

Quando crei quell'immagine, lo script SQL sarà nel posto giusto per essere eseguito, quindi ogni volta che un contenitore viene eseguito dall'immagine, installerà l'estensione.