Mehr von Docker
Jetzt wollen wir verschiedene Docker-Container miteinander spielen lassen:
sudo docker -d --env-file env.txt -v /srv/ebooks --name ebook-store rgwch/owncloud-client:latest
sudo docker -d -p 4040:8080 --volumes-from ebook-store rgwch/calibre-server:latest
Wenn env.txt so aussieht:
URL=https://my.server.com/owncloud/remote.php/webdav/ebooks
USER=ichselber
PASSWORD=ganz_geheim
Dann wird dieses Arrangement folgendes tun: Es erstellt eine lokale Calibre-library in einem docker-data-container, hält diese Library synchron mit dem owncloud-Verzeichnis “ebooks” auf dem Server my.server.com und bietet diese Library auf port 4040 an. Mit irgendeinem kompatiblen eBook-reader (oder einem Web-Browser) kann man dann die Bibliothek durchsuchen und Bücher zum Lesen herunterladen.
Natürlich könnte man dasselbe auch ohne Docker erreichen. Was hier besticht, ist aber die Einfachheit. So ein System aufzusetzen dauert keine 10 Minuten. Und es läuft auf jedem Computer, auf dem Docker installiert ist.
Automated Builds
Wenn man ein wenig mit Docker herumspielt, stellt man bald fest, dass Docker images ein wenig unhandlich sind. Zwar tut Docker sein Bestes, um nur die Layers umherzuschieben, die wirklich unterschiedlich sind, aber vor allem der Upload eines selbstgemachten Images auf hub.docker.com ist doch eine arge Geduldsprobe. Und wenn man eine Kleinigkeit ändert, muss man erneut hochladen.
Man kann sich behelfen, indem man statt Docker Images nur die Dockerfiles umherschiebt und die Images auf jedem Computer
separat mit docker build
erstellt. Das kann aber je nach Image dann auch wieder ein recht zeitraubender Prozess sein.
Aber es gibt einen einfacheren Weg, zumindest für OpenSource Dockerfiles:
- github und docker accounts erstellen, wenn noch nicht vorhanden
- Dockerfile und eventuell für den build benötigte Zusatzdateien in ein öffentliches Github Repository stellen
- Auf hub.docker.com
Add Repository
und dortautomated build
auswählen. DannGitHub
wählen und das vorhin erstellte Repository aufsuchen. - Auf GitHub das Repository aufsuchen, dort auf
Settings
gehen,webhooks&services
anklicken, unterservices
nach “Docker” suchen und aktivieren.
Von jetzt an wird jedes Mal, wenn ein Push ins GitHub Repository erfolgt, ein neues Docker-Image erstellt und automatisch auf Dockerhub bereitgestellt. Das Readme.md des Github Repositories wird dann zur Description des Docker Images.