Lancer l'image Docker avec les données initiales injectées avec docker-compose

docker-compose.yml


version: "3.8"

services:
  DB:
    image:mysql ← Je veux écrire une image qui entre ici les données initiales
    environment: 
      MYSQL_ROOT_PASSWORD:mot de passe
    ports: 
      -Port
    ....
    ....
    ....
    ....

image: mysql ← Je veux écrire une image avec les données initiales ici

Télécharger l'image vers Docker Hub ou packages Github Les données de test peuvent être utilisées dans n'importe quel environnement tant que l'image est spécifiée par la méthode ci-dessus.

Depuis le Dockerfile de l'image qui entre les données initiales en premier lieu

Dockerfile


FROM mysql

ENV MYSQL_ROOT_PASSWORD=Mot de passe ← J'étais en colère sans ça

Copier le chemin du fichier sql/docker-entrypoint-initdb.d

La partie copie ici dit aussi "Il n'y a pas de fichier SQL! J'étais faché. Il semble que vous puissiez écrire un Dockerfile avec un chemin relatif à partir d'une certaine hiérarchie

Construisez-le et transférez-le dans les packages Github. Voici [Officiel des packages Github](https://docs.github.com/en/free-pro-team@latest/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for -use-with-github-packages) Je pense que vous pouvez suivre!

Cette fois, je l'ai téléchargé dans les packages Github pour qu'il ressemble à ceci

docker-compose.yml


version: "3.8"
services:
  DB:
    image: docker.pkg.github.com/username/nom du référentiel/nom de l'image:tag
    environment: 
      MYSQL_ROOT_PASSWORD:mot de passe
    ports: 
      -Port
    ....
    ....
    ....
    ....

Ainsi, lorsque vous lancez réellement le conteneur Il tombera brillamment.

Donc docker-compose up -d Où il a été lancé en docker-compose up J'ai décidé de le lancer et d'y jeter un œil.

Ensuite, le fichier sql était `` permission refusée ''. Alors, dérangez-vous avec les autorisations avec le Dockerfile.

Dockerfile


FROM mysql

ENV MYSQL_ROOT_PASSWORD=mot de passe

Copier le chemin du fichier sql/docker-entrypoint-initdb.d
RUN chown mysql:mysql /docker-entrypoint-initdb.d/*.sql

Maintenant, faites une autre construction et poussez Si doker-compose.yml avec l'image spécifiée est `` docker-compose up -d```

Les données étaient merveilleusement incluses! !! !!

Article de référence

https://www.xlsoft.com/jp/blog/blog/2019/10/09/post-7617/ https://github.com/docker-library/postgres/issues/722

Recommended Posts

Lancer l'image Docker avec les données initiales injectées avec docker-compose
Démarrez SQL Server avec Docker et enregistrez les données initiales
Lancez MariaDB avec Docker
[Rails] Création initiale des données avec seed
Redémarrez Apache avec l'image php-apache de Docker
[Rails] Entrée de données initiale avec seed_fu!
Serveur proxy par squid en utilisant l'image docker
Lancez l'application Nginx + Spring Boot avec docker-compose
Autoriser la publication d'images avec [Docker + WordPress + MySQL]
Image volée lors de la mise à jour de Docker avec WSL2
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
Comment donner votre image à quelqu'un avec Docker
Mettre à jour l'image du conteneur avec KUSANAGI s'exécute sur Docker
Je ne peux pas faire docker-compose up -d avec docker
Jusqu'à ce que j'essaye d'exécuter Apache Kafka avec une image docker
Configuration avec les données de test initiales insérées dans le conteneur Db2 / DB
Créer une image Android pour Orange Pi 4 avec Docker