Está fallando porque Postgres no se ejecuta en el contenedor durante la compilación, solo se inicia en el CMD
cuando se ejecuta un contenedor.
El script de punto de entrada para la imagen de Docker admite la ejecución de pasos de configuración:cualquier archivo .sql o .sh en /docker-entrypoint-initdb.d
El directorio se ejecutará cuando se inicie el contenedor.
Entonces, puede hacer esto colocando la configuración de su extensión en una secuencia de comandos SQL y copiando la secuencia de comandos en la imagen en el directorio de inicio:
> cat hstore.sql
create extension hstore
> cat Dockerfile
FROM postgres:9.5
COPY hstore.sql /docker-entrypoint-initdb.d
Cuando construya esa imagen, el script SQL estará en el lugar correcto para ejecutarse, por lo que cada vez que se ejecute un contenedor desde la imagen, instalará la extensión.