Nach meinem Abschluss am Le Wagon Tokyo (https://www.lewagon.com/ja/tokyo), einer englischen Programmierschule aus Frankreich, die hauptsächlich Ruby und Rails unterrichtet, begann ich Docker zu studieren. Ich habe Docker auf einem Projekt aufgebaut, an dem ich nach meinem Abschluss gearbeitet habe, aber ich hatte viele Fehler. Ich habe den Fehler selbst durch Ausprobieren gelöst, daher hat es viel Zeit gekostet. Ich denke, es gibt viele Leute wie mich, die Probleme mit Fehlern hatten, als sie Docker zum ersten Mal berührten. Deshalb habe ich beschlossen, diesen Artikel zu schreiben, damit ich auf die von mir verwendete Lösung verweisen kann.
1 PermissionError (Permission denied :‘~~~/your_app/tmp/db’) Soweit ich aus der offiziellen Docker-Dokumentation ersehen kann, scheint dieser Fehler nur für Linux-Benutzer zu sein, aber ich teile die Berechtigung, da er für Linux-Benutzer ärgerlich sein kann. Dieser Fehler tritt auf, weil Docker eine temporäre Datenbank (Datenbankordner) erstellt, der derzeit angemeldete Linux-Benutzer jedoch nicht berechtigt ist, diese Datenbank zu verwenden.
Verwenden Sie zuerst diesen Befehl, um in diesen temporären Ordner zu wechseln.
$ cd ~~~(Pfad zu Ihrer App)/(Dein eigener App-Name)/tmp
Überprüfen Sie mit dem folgenden Befehl, welche Benutzer den Datenbankordner verwenden können.
$ ls -la
Wenn der Name des aktuell angemeldeten Linux-Benutzers nicht angezeigt wird, erteilen Sie diesem Benutzer die Berechtigung mit dem folgenden Befehl:
$ sudo chown -R (Linux-Benutzername) .
password for (Linux-Benutzername):
Da es sich um einen Sudo-Befehl handelt, werden Sie aufgefordert, das Kennwort einzugeben. Zu diesem Zeitpunkt sollten Sie in der Lage sein, wichtige Docker-Befehle wie "Docker-Compose Build" und "Docker-Compose Up" problemlos auszuführen.
Hinweis: Mit einem ähnlichen Fehler sagte ich "FATAL: Datei konnte nicht geöffnet werden" Ich sehe oft den Fehler "global / pg_filenode.map": Berechtigung verweigert ", aber dies ist in Ordnung, wenn Sie mit" Docker-Compose Stop "→" Docker-Compose Up "neu starten.
2 No space left on your device Dieser Fehler tritt auf, wenn die Kapazität des Docker-Images aufgrund der Einstellung der Docker-Datei groß wird. Unnötige Bilder und Container können mit dem folgenden Befehl einfach gelöscht werden.
$ docker image prune
$ docker container prune
Wenn Sie diese Befehle eingeben, wird die folgende Meldung angezeigt:
WARNING! This will remove all dangling images (Oder Container).
Are you sure you want to continue? [y/N]
Geben Sie "y" ein, da baumelnde Bilder unnötige Bilder bedeuten. Sie sollten über genügend Speicherplatz verfügen und in der Lage sein, dieselben wichtigen Docker-Befehle wie beim Auflösen des PermissionError auszuführen.
Wenn Sie mehr entfernen müssen, suchen Sie unten nach dem Bild, das Sie entfernen möchten.
$ docker images
Nachdem Sie die ID des zu löschenden Bildes bestätigt haben, löschen Sie es unten.
$ docker image rm -f (ID des Bildes, das Sie löschen möchten)
Obwohl in englischer Sprache, wird dieses Buch empfohlen, da es ausführlich beschreibt, wie Docker in Ruby on Rails-Projekten verwendet wird.
Docker for Rails Developers: https://pragprog.com/titles/ridocker/
Leider gibt es nur wenige Docker-Materialien für Rails, einschließlich Englisch. Wenn Sie also eine kurze Geschichte von Rails haben und einfache Materialien über Docker lesen möchten, ist es Englisch, aber es lohnt sich zu lesen. Überlegen.
Ich habe einen Artikel in englischer Sprache auf Medium ausführlicher zu diesem Thema geschrieben. Schauen Sie also auch dort nach.
https://medium.com/@shogohida_81081/5-solutions-to-common-errors-of-docker-for-beginners-c04dc1237c78
Recommended Posts