Eine bestehende Datenbank auf einem Docker laufen lassen

Stellt euch vor ihr bekommt die undankbare Aufgabe ein altes WordPress Projekt zu upgraden. Das Projekt hinkt bereits zwei Major Releases hinterher. Das bedeutet ihr könnt nicht einfach im Produktivsystem ein upgrade vollziehen. Ihr müsst euch das Produsystem auf eure lokale Entwicklungsumgebung kopieren.

Dafür eignet sich Docker ganz gut. Heute gehe ich davon aus, dass wir nur die Datenbank dockerisieren. Dann schieben wir den Datenbankdump der Produktivumgebung in unseren Docker.
Vorraussetzung: Ihr habt docker auf eurem System, könnt mit der Konsole umgehen und hab bereits den Datenbank Dump.

  1. Erstellt ein Order wo ihr Euer Projekt erstellen möchtet.
  2. Erstellt eine docker-compose.yml
  3. kopiert diese Befehle in die eben erstellte docker-compose.yml rein *
  4. erstellt zwei Ordner: my-datavolume und dumps
  5. legt das SQL Dump file in diesen Ordner. Tut euch ein gefallen um bennent die Datei aussagekräftig um. Zum Beispiel 2021-11-11-dump.sql
  6. startet docker-compose mit docker-compose up -d
  7. checkt ob der container vorhanden ist: docker ps
  8. loggt euch jetzt in euer Container ein docker exec -it my_mysql bash
  9. loggt euch innerhalb des Containers in MySql ein mit mysql -uroot -p
  10. Okay, mir ist es gerade auch einwenig peinlich aber Passwort ist : password
  11. gebt ein source /home/2011-11-11-dump.sql
  12. A viola! Die Datenbank ist da
  13. exit und dann noch mal exit und ihr seid wieder im HOST

Über ein SQLTool wie MySQL Workbench könnt ihr solange der Conatiner läuft drauf zugreifen. Wenn ihr die DB in eure DB UI einfügen möchtet dann beachtet das der PORT nicht default 3306 ist sonder ich ihn in der docker-compose.yml mit 3309 angegeben habe. Das könnt ihr natürlich anpassen. Dafür müsst ihr nur den container wieder mit docker-compose down runterfahren.

* das docker-compose.yml file:

version: '3.1'

services:

  wordpress:
    image: wordpress:4
    restart: always
    ports:
      - '8090:80'
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - ./wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: password
    volumes:
      - ./db:/var/lib/mysql      
      - ./schema/:/home/dumps
      #- ./schema/:/docker-entrypoint-initdb.d
    ports:
      - "3309:3306"      
volumes:
  wordpress:
  db:

Leave a Comment

Your email address will not be published. Required fields are marked *

*

*

Empfholende Artikel


Sprechblassen mit HTML und CSS bauen

November 22, 2021

Es kommt immer mal wieder vor, dass man eine Sprechblase zum Beispiel in einer Kommentarbox bauen muss. Wie war das gleich nochmal?!? Man kann sich ja nicht immer alles merken und es gibt im Netzt auch nützliche Generatoren für diese Fälle. Für Sprechblasen könnte man zum Beispiel diesen hier nehmen: https://www.html-code-generator.com/css/speech-bubble-generator . Mit ein paar […]

Table colspan und rowspan Generator

November 21, 2021

Komplizierte Konstrukte mit Tabellen abzubilden war eigentlich eine Dispziplinzwischen den Jahr 2000 und 2003 herum. Immer wieder kommen aber bei Stackoverflow Fragen auf, wie man solche oder solche Tabellen darstellt. Statt auf das coole und moderne Grid System zurückzugreifen wird noch mit Tabellen gearbeitet. Wie auch immer. Wer sich den Horror mit colspans und rowspan […]

Ein Git reset wieder rückgängig machen

November 8, 2021

Stellt euch vor. Ihr habt ein commit gemacht und wollt diesen aber wieder zurücksetzen. Quasi ein Rollback um eins zurück. Das macht ihr mit git reset HEAD~1. Nun sagt ihr: Ähh, doch lieber nicht… Um das wieder rückgängig zu machen könnt ihr mit git reset –hard commit_id_des_letzten_HEAD den reset Commit wieder rückgängig machen und ihr […]

Zwischen den Git Commits springen

November 2, 2021

Allgemein kann man zwischen den einzelnen Git Branches springen. Aber wie sieht es aus, wenn man zwischen einzelnen Commits innerhalb einer Branch springen will? Ein Fall wäre, man arbeitet an einem Feature. Ist immer Feature Branche ausgecheckt und setzt während der Entwicklung kleinere Commits ab. Dann kommt die Stelle wo man sagt, ok ich muss […]

Switch between Git Commits

November 2, 2021

In general you can switch between the various Git Branches. But how it will look, if someone like to switch between the various Git Commits? On case would be. You working on a feature. You checked out to the feature-branch and writing your code. You made some smaller commits. Then you will come to the […]

Laravel Mailhog Docker

October 20, 2021

Letztens wurde ich gefragt, wie ich Mail bei Laravel teste. Ich meinte ich habe einen SMTP Server den ich nutzen kann. Da meinte er, dass wäre zwar okay aber man könnte sich damit auch eine valide Mailadresse verbrennen. Mit verbrennen meint der Kollege, dass sie global als SPAM Mailadresse angerechnet werden kann. Falls die Tests […]