4 votes

J'ai besoin de construire une image docker avec postgres avec des données incluses

Alors, j'ai besoin d'une image Docker avec : mon programme qui utilise postgresql, postgresql et des données dedans. J'utilise cet article: https://medium.com/@sharmaNK/build-postgres-docker-image-with-data-included-489bd58a1f9e

Mes étapes :

  1. docker-compose build //Crée ps_image_with_data
  2. docker run --name ps-export -p 5432:5432 -i postgres
  3. Se connecter à la base de données 5432, en utilisant dbeaver ; créer une table ; mettre quelques lignes dans la table
  4. docker exec -it my_container_with_data_id bash
  5. mkdir /postgres
  6. cp -r /var/lib/postgresql/data/* /postgres
  7. docker commit ps-export ps_image_with_data
  8. docker run --env PGDATA=postgres -p 5432:5432 -i ps_image_with_data // ici j'ai essayé à la fois ps_image_with_data et la nouvelle image qui a été créée à l'étape 7

Et après l'étape 8, j'ai obtenu ceci :

2018-11-08 12:44:52.549 UTC [1] LOG: écoute sur l'adresse IPv4 "0.0.0.0", port 5432 2018-11-08 12:44:52.549 UTC [1] LOG: écoute sur l'adresse IPv6 "::", port 5432 2018-11-08 12:44:52.615 UTC [1] LOG: écoute sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432" 2018-11-08 12:44:52.750 UTC [22] LOG: le système de base de données a été interrompu ; dernière mise en marche connue à 2018-11-08 11:56:27 UTC 2018-11-08 12:45:25.042 UTC [22] LOG: impossible de supprimer le fichier cache "global/pg_internal.init" : Permission refusée 2018-11-08 12:45:25.042 UTC [22] LOG: impossible de supprimer le fichier cache "base/13067/pg_internal.init" : Permission refusée 2018-11-08 12:45:25.042 UTC [22] LOG: le système de base de données n'a pas été arrêté correctement ; récupération automatique en cours 2018-11-08 12:45:25.127 UTC [22] LOG: répétition commence à 0/166CF68 2018-11-08 12:45:25.127 UTC [22] LOG: longueur d'enregistrement invalide à 0/166D048 : voulu 24, obtenu 0 2018-11-08 12:45:25.127 UTC [22] LOG: répétition terminée à 0/166D010 2018-11-08 12:45:25.259 UTC [22] PANIC: impossible de renommer le fichier "pg_logical/replorigin_checkpoint.tmp" en "pg_logical/replorigin_checkpoint" : Permission refusée 2018-11-08 12:45:25.357 UTC [1] LOG: le processus de démarrage (PID 22) a été terminé par le signal 6 : Abandon 2018-11-08 12:45:25.358 UTC [1] LOG: abandon du démarrage en raison de l'échec du processus de démarrage 2018-11-08 12:45:25.359 UTC [1] LOG: le système de base de données est arrêté

Est-ce que quelqu'un peut m'aider à résoudre ce problème ?

4voto

Siyu Points 130

Que diriez-vous de

  1. docker run --name ps-export -p 5432:5432 -i postgres

  2. Connectez-vous à la base de données 5432, en utilisant dbeaver ; créez une table ; mettez quelques lignes dans la table

  3. Faites une sauvegarde (data.sql) sur votre hôte

  4. Ajoutez dans votre docker-compose.yml, sous le serveur psql

`

volumes:
- ./data.sql:/docker-entrypoint-initdb.d/init.sql
  1. docker-compose up

Si vous souhaitez inclure data.sql dans l'image, au lieu de l'étape 4, copiez-le dans /docker-entrypoint-initdb.d/init.sql dans votre dockerfile.

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