Saltar al contenido

¿Cómo instalar correctamente RVM en Docker?

Solución:

Larga historia corta:

docker -it --rm myimage /bin/bash El comando no inicia bash como un shell de inicio de sesión.

Explicación:

Cuando corres $ docker -it --rm myimage /bin/bash es invocar bash sin el -l opción que hace bash actuar como si se hubiera invocado como un shell de inicio de sesión, rvm inicializaciones depende de la source-En g /path/to/.rvm/scripts/rvm o /etc/profile.d/rvm.sh y esa inicialización está en .bash_profile o .bashrc o cualquier otro script de inicialización.

¿Cómo puedo arreglar eso?

Si no lo hace, siempre tenga el ruby de rvm agregar -l opción.

Aquí hay un Dockerfile con instalado ruby por rvm:

FROM Debian

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -q && 
    apt-get install -qy procps curl ca-certificates gnupg2 build-essential --no-install-recommends && apt-get clean

RUN gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
RUN curl -sSL https://get.rvm.io | bash -s
RUN /bin/bash -l -c ". /etc/profile.d/rvm.sh && rvm install 2.3.3"
# The entry point here is an initialization process, 
# it will be used as arguments for e.g.
# `docker run` command 
ENTRYPOINT ["/bin/bash", "-l", "-c"]

Ejecute el contenedor:

➠ docker_templates : docker run -ti --rm rvm 'ruby -v'
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
➠ docker_templates : docker run -ti --rm rvm 'rvm -v'
rvm 1.29.1 (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]
➠ docker_templates : docker run -ti --rm rvm bash
[email protected]:/# rvm -v
rvm 1.29.1 (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]
[email protected]:/# ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
[email protected]:/# 

No use RUN bash -l -c rvm install 2.3.3. Está muy desaliñado. Puede configurar el comando de shell por SHELL [ "/bin/bash", "-l", "-c" ] y simplemente llama RUN rvm install 2.3.3.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *