[RUBY] Überprüfen Sie die Einstellung BUNDLE_PATH, wenn der Befehl zur Bundle-Installation im Docker-Container mit dem folgenden Code beendet wird: 15

Veranstaltung

CI endet jetzt mit einem Fehler ab dem Tag, an dem Sie das Docker-Image löschen

bundle install --clean schlägt jetzt fehl.

Bundle complete! 62 Gemfile dependencies, 187 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Cleaning all the gems on your system is dangerous! If you're sure you want to
remove every system gem not in this bundle, run `bundle clean --force`.
Service 'xxxx' failed to build: The command '/bin/sh -c bundle install --clean' returned a non-zero code: 15

Es heißt "Bundle abgeschlossen!" Einmal, aber danach wird "Code: 15" als "Das Reinigen aller Edelsteine auf Ihrem System ist gefährlich!" Zurückgegeben. Und endet mit einem Fehler.


Docker-Datei für den betreffenden Container

FROM ruby:2.6.5
ENV RUBYOPT -EUTF-8
ENV LANG C.UTF-8
RUN gem install rails -v 6.0.2
#Folgendes wird weggelassen

Ursache

BUNDLE_PATH wurde aufgrund der folgenden Änderungen in Ruby's Docker Image nicht automatisch festgelegt. Stop setting `BUNDLE_PATH` by deivid-rodriguez · Pull Request #306 · docker-library/ruby

Da "BUNDLE_PATH" in der Docker-Datei nicht angegeben wurde, wurde die Angabe von "BUNDLE_PATH" aufgrund des Löschens der Einstellung in Image leer und das Ziel wurde global. Daher ist es wahrscheinlich, dass die folgende Meldung angezeigt wurde.

Cleaning all the gems on your system is dangerous! If you're sure you want to
remove every system gem not in this bundle, run `bundle clean --force`.

Ich hatte kein Problem, weil ich eine Weile ein altes Bild im Cache verwendet habe, aber ich hatte ein Problem, indem ich den Cache geleert und das Bild erneut abgerufen habe.

Korrespondenz

Es wurde gelöst, indem ENV BUNDLE_PATH = $ GEM_HOME zur Docker-Datei hinzugefügt wurde (der von der obigen PR gelöschte Teil wird in Ihrer eigenen Docker-Datei beschrieben). (Zuerst habe ich es der "Umgebung" der Docker-Compose-Datei hinzugefügt, aber der Fehler wurde nicht behoben. Ich hatte es eilig und konnte es nicht im Detail überprüfen ...)

Referenz

Newest version breaks build - 'Cleaning all the gems on your system is dangerous!' · Issue #3271 · rubygems/rubygems

Recommended Posts

Überprüfen Sie die Einstellung BUNDLE_PATH, wenn der Befehl zur Bundle-Installation im Docker-Container mit dem folgenden Code beendet wird: 15
Speicherort für die Einstellung des Arbeitsbereichs, wenn Sie eine Remoteverbindung mit VSCode herstellen und an einem Docker-Container arbeiten
Bei der Bundle-Installation tritt ein Fehler auf, nachdem die Datenbank auf MySQL gesetzt wurde
Die Zeit ist falsch mit der Anwendung, die auf dem Docker-Container gestartet wurde
Ich sehe keinen Fehler bei der Installation des Rails-Bundles ... der Lösung
Was tun, wenn Sie gem'bcrypt 'in Ihre Gemfile eingeben und bei der Bundle-Installation eine Fehlermeldung erhalten?
Fügen Sie gem'rails-i18n ',' ~> 6.0.0 'hinzu und was zu tun ist, wenn die Bundle-Installation einen Fehler anzeigt
Ich erhalte eine Fehlermeldung bei der Bundle-Installation und Puma kann nicht installiert werden.
Was tun, wenn ein Fehler auftritt, wenn nokogiri bei der Bundle-Installation eingeht?
[Docker] Erstellen, wenn der Quellcode auf dem Container gebunden ist
Kopieren des Repositorys und Abrufen eines mysql2-Fehlers bei der ersten Bundle-Installation