Ce serait une bonne docker webdev flux de travail?

J'ai un pressentiment que docker pourrait grandement améliorer mon webdev flux de travail - mais je n'ai pas vraiment réussi à envelopper ma tête autour de la façon d'aborder un projet, l'ajout de support de la pile.

Le logiciel de base de pile devrait ressembler à ceci:

Logiciel

  • Docker image(s) personnalisé, pile LAMP

    • Apache avec plusieurs modules
    • MYSQL
    • PHP
    • Certains CMS, par exemple Silverstripe
  • GIT

Flux de travail

Je pourrais imaginer le flux de travail à ressembler à quelque chose comme ce qui suit:

Développement

  1. Écrire un Dockerfile qui définit une LAMPE-conteneur rencontre les exigences énoncées ci-dessus
    • REQ: L'appareil doit démarrer apache/mysql droite après le démarrage
  2. Construire l'image docker
  3. Copier les fichiers requis pour exécuter le CMS par ex. ~/dev/cmsdir
    • Mettre ~/dev/cmsdir/ sous contrôle de version
  4. Exécuter le conteneur docker, et en quelque sorte le mont ~/dev/cmsdir à /var/www/ sur le conteneur
  5. Remplir la base de données
  6. Faire du travail en /dev/cmsdir/
  7. Commettre & fermez le panneau contenant

Déploiement

  1. Configurer l'hôte distant (par exemple, avec ansible)
  2. Pousser conteneur de l'image à l'hôte distant
  3. Chercher cmsdir-projet via git
  4. Exécuter le conteneur docker, tirez dans la base de données et le mont cmsdir en /var/www

Maintenant, cela ressemble tout à fait joli sur le papier, MAIS je ne suis pas certain que ce soit la bonne approche.

Questions:

  1. Tout en développant localement, comment pourrais-je obtenir la base de données de persister après un redémarrage de l'instance de conteneur? Ou aurais-je besoin pour exécuter sql dump chaque fois avant de tourner vers le bas du conteneur?

  2. Que je dois le récipient séparé les instances de la base de données et le serveur apache? Ou bien serait-elle suffisante pour avoir un seul conteneur au-dessus de cas d'utilisation?

  3. Si vous utilisez des contenants séparés pour la base de données et le serveur, comment pourrais-je automatiser les tourner en haut et en bas en même temps?

  4. Comment pourrais-je monter /dev/cmsdir/ dans les conteneurs /var/www/-répertoire? Dois-je utiliser les données des volumes de pour cela?

  5. Ai-je raté un écueils? Tout ce qui pourrait être simplifié?

  • Cette question semble être intéressante pour quelques personnes. Quelqu'un semble avoir écrit un article sur le blog de la série sur le sujet récemment. Car il n'est pas fini pour l'instant, je vais poster le lien dans ce commentaire: project-webdev.blogspot.de/2015/05/...
InformationsquelleAutor jottr | 2013-11-23