2016-09-16 4 views
0

Also verwende ich gitlab-ci, um meine Websites in Docker-Container zu implementieren, weil der gitlab-ci Docker Runner scheint nicht zu tun, was ich tun möchte, verwende ich die Shell Executor und lass es laufen docker-compose up -d. Hier kommt das Problem.Umgang mit Daten in Docker Containern mit Gitlab-Ci

Ich habe 2 Bände in meinem Docker-Container. ./:/var/www/html/ (das ist der Inhalt meines Git-Repos, also Dateien, die ich beim Build ersetzen möchte) und ein Mount, das "innerhalb" dieses Mount ist /srv/data:/var/www/html/software/permdata (das ist ein persistenter Mount auf meinem Server).

Wenn der gitlab-ci runner startet, versucht er alle Dateien zu entfernen, während der Container läuft, aber wegen dieses mount in mount bekommt er einen device busy und bricht ab. Also muss ich den Container manuell stoppen und entfernen, bevor ich meinen Build ausführen kann (was den Punkt der Build-Automatisierung vereitelt).

Optionen Ich dachte, dieses Problem zu beheben:

  1. Anschlag und entfernen Sie den Behälter vor Gitlab-ci-Multi-Läufer startet (scheint nicht möglich)
  2. die git Daten zu meinem Docker Container hinzufügen und nur montieren mein permdata (scheint, wie Sie die Daten nicht an einem Behälter ohne das Volumen Option mit docker hinzufügen können komponieren möchten, können Sie in einem Dockerfile)

Option 2 wäre ideal, denn dann wäre es auch aussortieren meine Probleme mit Berechtigungen für die Dateien. Vielleicht hat jemand durch das gleiche Problem gegangen, und einen Rat geben könnte mir

Antwort

0

scheint, wie Sie die Daten nicht an einen Behälter ohne das Volumen Option mit Docker wie komponieren hinzufügen können, können Sie in einem Dockerfile

Das ist richtig. Die Compose-Datei soll nicht die Docker-Datei ersetzen, sondern mehrere Bilder für eine Anwendung oder ein Projekt ausführen.

Sie können die Dockerfile ändern, um in die Git-Dateien zu kopieren.

+0

Danke, aber das weiß ich schon. Das Erstellen einer neuen Dockerdatei und eines neuen Abbilds für jeden Container ist jedoch für dieses Problem nicht wünschenswert, da dadurch eine riesige Liste neuer Probleme erstellt wird. – user3676487

Verwandte Themen