Container Database-Entwicklung auf höchstem Niveau.
Leicht, schnell und praktisch
Du brauchst keinen Administrator oder umfangreiche Anleitungen über den MS SQL Server. Konzentriere Dich hier auf das, was Du wirklich benötigst:
- Einen SQL Server, der Anfragen annehmen und Daten verarbeiten kann.
- Deine API (Programmierschnittstelle) kann in Deiner Datenbank getestet werden.
In den ersten Stufen der Entwicklung solltest Du nicht viel Zeit mit der Konfiguration Deines SQL Servers oder der Konfiguration einer gehosteten Umgebung investieren. Hier kommt der lokale Docker Container ins Spiel, der Deine Arbeit positiv verändern wird.
Dieser Artikel erklärt den Aufbau eines Docker Containers auf der Basis von mcr.microsoft.com/mssql/server, um ein benutzerdefiniertes Dockerfile zu erstellen, das einen SQL Server starten kann, eine Datenbank und ein Table erstellen kann sowie das Table mit Daten befüllen kann.
Der Artikel zeigt Dir außerdem, wie Du eine .NET Core Programmierschnittstelle erstellst. Die fertigen MSSQL Dockerfile und Skripte kannst Du über unseren GitHub Account downloaden. Ein Dank gilt hier twright-msft für seine stellar docker images, die ich sehr oft nutze.
Image-Test
Bevor wir eine benutzerdefinierte Docker-Datei erstellen, muss das Image heruntergeladen sowie geöffnet werden, damit sichergestellt werden kann, dass es sich öffnen lässt. Außerdem muss Docker auf Deinem Computer installiert sein.
Starte mit folgender Befehlszeile:
Öffne das Image und starte den Container mit dem folgenden Code:
Der SQL Server Container sollte mit dem Port 1433 laufen, wenn Du folgenden Code startest:
Öffnen des Containers
Starte die folgende Befehlszeile, um dich mit dem Container zu verbinden:
Starte sqlcmd in der Kommandozeile des Containers. Hier wird das gleiche Passwort benötigt, das wir für das Erstellen des Containers mit docker run benutzt haben.
Wenn Du jetzt eine 1> siehst, hast Du bis hier hin alles richtig gemacht. Dieses Zeichen zeigt Dir, dass Du Dich in der richtigen sqlcmd Befehlszeile befindest und mit Deinem ausgewählten Server arbeiten kannst.
Wir starten nun mit SQL, um eine Datenbank und ein Table zu erstellen. Nutze dafür folgenden Code:
Überprüfe nun die Datenbank mit folgendem Code, um sicherzustellen, dass alles korrekt geschrieben wurde:
Fertig!
Erstellen des Dockerfiles
Die händische Eingabe der Kommandos kann etwas umständlich sein. Daher wollen wir alle Befehle in Skripte hinterlegen.
- entrypoint.sh — Das Skript wurde beim Start ausgeführt und führt einfach import-data.sh aus und startet den SQL Server.
- import-data.sh — führt ein sqlcmd aus, das setup.sql aufruft, und einen bcp-Befehl, der eine CSV-Datei importiert.
- setup.sql — SQL-Skript, das eine Datenbank und eine Tabelle erstellt
Das folgende Dockerfile beinhaltet alle drei Skripte – wir erklären diese später im Detail, damit keine weiteren Fragen aufkommen.
Dockerfile
Starte Deine Datenbank Einstellung der MSSQL docker docs vor dem finalen Befehl, den SQL Server zu starten. Mit der Datei entrypoint.sh wird die Datei import-data.sh vor dem Öffnen des Servers gestartet.
entrypoint.sh
Bei der Container-Erstellung öffnet entrypoint die Datei import-data.sh und startet den Server. Diese Datei stellt uns zwei SQL Server Befehle zur Verfügung sowie den notwendigen Befehl, die Datenbank ohne Unterbrechung für 90 Sekunden zu starten. (Nutze die Zeit um Dir einen Kaffee zu machen oder kurz zu meditieren – der Computer sollte in dieser Zeit nicht benutzt werden)
import-data.sh
Der zweite Befehl sqlcmd öffnet die Datei setup.sql, die das Grundgerüst unserer Datenbank bildet. Sobald die Datenbank erstellt wurde, importiert sie mit Hilfe von bcp Daten aus einer .csv-Datei.
setup.sql
Baue das Image mit Deinem Dockerfile
Markiere Dein Image mit folgendem Code:
Öffne das Image mit docker run nach der Fertigstellung des vorigen Codes. Dieser Vorgang ist fast identisch dem vorigen docker run, mit dem Unterschied, dass wir das neue mit mssql:dev markiert haben.
Sobald das Image fertiggestellt wurde und die Image ID bestätigt wurde, öffne den Container um zu bestätigen, dass es funktioniert:
Aus dieser Container Befehlszeile kannst Du die testdb database öffnen:
Prüfe die Daten auf ihre Richtigkeit, bevor Du fortfährst. Es kann vorkommen, dass Daten fehlen, deswegen ist dieser Schritt sehr wichtig.
Das wars schon! Jetzt solltest Du einen SQL Server Datenbank erstellt haben, die Du einfach konfigurieren und nach Deinen Wünschen veröffentlichen kannst.
Lösche Deinen Container mit folgender Befehlszeile:
Starte Deinen Container neu mit dem Befehl docker run in einem Skript, etwa mit der folgenden Datei start-docker-sql.sh oder einer ähnlichen Datei.
Veröffentlichung auf Docker Hub
Dein fertiges working image solltest Du unbedingt auf einem Host speichern, damit Du sie von dem Docker Hub in verschiedene Kanäle streuen kannst.
- Erstelle Dir dafür einen Docker Hub-Account auf hub.docker.com/.
- Erstelle dann ein neues Profil (repository) mit einem Namen Deiner Wahl und einer kurzen Beschreibung.
- Gib nun folgendes in Deiner Befehlszeile ein, damit Dir die Zugangsdaten für Deinen Account angezeigt werden:
Markiere nun Dein Bild mit folgendem Code:
Dupliziere Dein Image nun auf einen neuen Speicherort mit folgendem Code:
Abschließend kannst Du Dein Image mit folgendem Befehlskommando pullen:
Mit diesem Vorgang sollte die Arbeit etwas leichter von Statten gehen.
Möchtest du mehr über dieses Thema erfahren, stehen dir unsere Expert:innen gerne zur Verfügung. Kontaktiere uns dafür gerne über unser Kontaktformular. Wir freuen uns von dir zu hören!