[RUBY] Vérifiez le paramètre BUNDLE_PATH lorsque la commande d'installation du bundle sur le conteneur Docker se termine avec le code: 15

un événement

CI se termine maintenant par une erreur du jour où vous effacez l'image Docker

bundle install --clean échoue maintenant.

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

Il dit Bundle complet! Une fois, mais après cela, il renvoie code: 15 car` Nettoyer toutes les gemmes de votre système est dangereux!


Dockerfile pour le conteneur en question

FROM ruby:2.6.5
ENV RUBYOPT -EUTF-8
ENV LANG C.UTF-8
RUN gem install rails -v 6.0.2
#Ce qui suit est omis

Cause

BUNDLE_PATH n'a pas été défini automatiquement en raison des modifications suivantes dans Ruby's Docker Image. Stop setting `BUNDLE_PATH` by deivid-rodriguez · Pull Request #306 · docker-library/ruby

Puisque BUNDLE_PATH n'a pas été spécifié sur le Dockerfile, la spécification de BUNDLE_PATH est devenue vide en raison de la suppression du paramètre dans Image, et la cible est devenue globale. Par conséquent, il est probable que le message suivant a été affiché.

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`.

Je n'avais pas eu de problème car j'utilisais une ancienne image dans le cache pendant un certain temps, mais j'ai eu un problème en vidant le cache et en réacquérant l'image.

Correspondance

Il a été résolu en ajoutant ʻENV BUNDLE_PATH = $ GEM_HOME au Dockerfile (la partie supprimée par le PR ci-dessus est décrite dans votre propre Dockerfile). (Au début je l'ai ajouté à ʻenvironment du fichier docker-compose, mais l'erreur n'a pas été résolue. J'étais pressé donc je n'ai pas pu le vérifier en détail ...)

référence

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

Recommended Posts

Vérifiez le paramètre BUNDLE_PATH lorsque la commande d'installation du bundle sur le conteneur Docker se termine avec le code: 15
Emplacement des paramètres de l'espace de travail lors de la connexion à distance avec VSCode et du travail sur un conteneur Docker
Une erreur se produit lors de l'installation du bundle après avoir défini la base de données sur mysql
L'heure ne va pas avec l'application lancée sur le conteneur Docker
Je ne vois pas d'erreur dans l'installation du bundle Rails ... la solution
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Ajouter gem'rails-i18n ',' ~> 6.0.0 'et que faire si l'installation du bundle donne une erreur
J'obtiens une erreur avec l'installation du bundle et puma ne peut pas être installé.
Que faire si une erreur se produit lorsque nokogiri entre lors de l'installation du bundle
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
Copier le référentiel et obtenir une erreur mysql2 lors de la première installation du bundle