Il échoue car Postgres ne s'exécute pas dans le conteneur pendant la construction, il n'est démarré que dans le CMD
lorsqu'un conteneur s'exécute.
Le script de point d'entrée pour l'image Docker prend en charge l'exécution des étapes de configuration - tous les fichiers .sql ou .sh dans le /docker-entrypoint-initdb.d
sera exécuté au démarrage du conteneur.
Vous pouvez donc le faire en plaçant la configuration de votre extension dans un script SQL et en copiant le script dans l'image du répertoire init :
> cat hstore.sql
create extension hstore
> cat Dockerfile
FROM postgres:9.5
COPY hstore.sql /docker-entrypoint-initdb.d
Lorsque vous créez cette image, le script SQL sera au bon endroit pour être exécuté, donc chaque fois qu'un conteneur s'exécute à partir de l'image, il installe l'extension.