Det fejler, fordi Postgres ikke kører i containeren under opbygningen, den er kun startet i CMD
når en container kører.
Entrypoint-scriptet til Docker-billedet understøtter kørsel af opsætningstrin - alle .sql- eller .sh-filer i /docker-entrypoint-initdb.d
mappe vil blive udført, når containeren starter.
Så du kan gøre dette ved at sætte din udvidelsesopsætning i et SQL-script og kopiere scriptet ind i billedet i init-mappen:
> cat hstore.sql
create extension hstore
> cat Dockerfile
FROM postgres:9.5
COPY hstore.sql /docker-entrypoint-initdb.d
Når du bygger det billede, vil SQL-scriptet være på det rigtige sted til at blive udført, så hver gang en container kører fra billedet, vil den installere udvidelsen.