4 votes

Postgres à l'intérieur de docker ; recharger la base de données / init script à chaque fois que le conteneur est démarré.

Suivant l'image docker postgres officielle vous pouvez mettre en place un point d'entrée où vous placez vos scripts d'initialisation.

Cela fonctionne bien. Pour le développement/testing, je veux une base de données propre sur chaque le démarrage du conteneur, et pas seulement lors de son premier.
Tous les scripts à l'intérieur de l'interface docker-entrypoint-initdb.d sont uniquement exécutées une fois (la première fois que le conteneur est démarré).
Existe-t-il un moyen simple d'exécuter le script à chaque fois que le conteneur est démarré via docker-compose ?
J'ai mis DROP TABLE IF EXISTS devant chaque CREATE TABLE donc le .sql script fonctionnera même sur un nouveau démarrage.

Partie pertinente du docker-compose si quelqu'un en a besoin :

postgres-myname:
    image: postgres:12.1-alpine
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=postgres-db
    ports:
      - "54320:5432"
    build:
      context: .
      dockerfile: postgresql-config/Dockerfile
    networks:
      - my-network

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X