Je voudrais savoir s'il est possible d'exécuter une commande PSQL dans le fichier docker-compose.
J'ai les éléments suivants docker-compose.yml
:
version: '3'
services:
postgres:
image: postgres:9.6
container_name: postgres-container
ports:
- "5432:5432"
network_mode: Host
environment:
- LC_ALL=C.UTF-8
- POSTGRES_DB=databasename
- POSTGRES_USER=username
- POSTGRES_PASSWORD=
- POSTGRES_PORT=5432
Et après que cela fonctionne correctement, j'exécute la commande suivante: docker exec -i postgres-container psql -U username -d databasename < data.sql
Ces 2 étapes fonctionnent bien. Mais j'aimerais savoir s'il est possible de faire un seul pas.
Chaque fois que je veux exécuter cette commande. Il est important que la base de données soit toujours nouvelle. C'est pourquoi je ne le persiste pas dans un volume
et je veux exécuter cette commande.
Est-il possible d'exécuter docker-compose up
et exécutez également la commande psql
?
Merci d'avance!
Solution pure docker-compose avec volume,
volumes:
- ./data.sql:/docker-entrypoint-initdb.d/init.sql
Selon le dockerfile , au démarrage, il videra toutes les données sql dans docker-entrypoint-initdb.d