sql >> Database >  >> RDS >> PostgreSQL

Hoe maak je een postgres-extensie in de container?

Het mislukt omdat Postgres tijdens de build niet in de container wordt uitgevoerd, het is alleen gestart in de CMD wanneer een container loopt.

Het entrypoint-script voor de Docker-image heeft ondersteuning voor het uitvoeren van setup-stappen - alle .sql- of .sh-bestanden in de /docker-entrypoint-initdb.d directory wordt uitgevoerd wanneer de container start.

U kunt dit dus doen door uw extensie-setup in een SQL-script te plaatsen en het script naar de afbeelding in de init-directory te kopiëren:

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

Wanneer u die afbeelding bouwt, bevindt het SQL-script zich op de juiste plaats om te worden uitgevoerd, dus wanneer een container vanuit de afbeelding wordt uitgevoerd, wordt de extensie geïnstalleerd.




  1. Hoe een MySQL-database te back-uppen / exporteren met PHP

  2. Oracle Insert Select met bestellen door

  3. VMware CPU Hot Plug vNUMA-effecten op SQL Server

  4. Fix “SQL Server blokkeerde toegang tot VERKLARING ‘OpenRowset/OpenDatasource’ van component ‘Ad Hoc Distributed Queries’