rbenv が入った docker image を作りたい人生だった
はじめに
rbenv の入った docker image を作りたかった。
OS は ubuntu を使うことにした。
Dockerfile
Dockerfile
FROM ubuntu:xenial
# Require to install ruby
RUN apt-get update && \
apt-get install -y \
git \
build-essential \
libssl-dev \
libreadline-dev \
zlib1g-dev
# Install rbenv
RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv && \
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && \
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
ENV PATH /root/.rbenv/shims:/root/.rbenv/bin:$PATH
# Install ruby-build & ruby
RUN git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build && \
~/.rbenv/bin/rbenv install 2.5.1 && \
~/.rbenv/bin/rbenv global 2.5.1
# Initiarize ruby encording
ENV RUBYOPT -EUTF-8
# Install bundler
RUN ~/.rbenv/bin/rbenv exec gem install bundler -v 1.16.3
やってること
Require to install ruby
FROM ubuntu:xenial
# Require to install ruby
RUN apt-get update && \
apt-get install -y \
git \
build-essential \
libssl-dev \
libreadline-dev \
zlib1g-dev
# Install rbenv
RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv && \
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && \
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
ENV PATH /root/.rbenv/shims:/root/.rbenv/bin:$PATH
# Install ruby-build & ruby
RUN git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build && \
~/.rbenv/bin/rbenv install 2.5.1 && \
~/.rbenv/bin/rbenv global 2.5.1
# Initiarize ruby encording
ENV RUBYOPT -EUTF-8
# Install bundler
RUN ~/.rbenv/bin/rbenv exec gem install bundler -v 1.16.3
Require to install ruby
下記、ruby・rbenv のダウンロードおよびコンパイルに必要なモジュールのインストール。
- git
- build-essential
- libssl-dev
- libreadline-dev
- zlib1g-dev
Install rbenv
リポジトリからソースを落としてくる
git repository から clone してパスを通している。
https://github.com/rbenv/rbenv#basic-github-checkout
明示的にパスを通す
~/.bashrc
に書き加えただけだと GitLab CI で利用しようとしたときにデフォルトでパスが通らなかったので ENV PATH ...
で明示的に指定している。
Initiarize ruby encording
ruby のエンコーディングを UTF-8 としている。
デフォルト だと US-ASCII になっており bundle install
が動かなかった。
Install ruby-build & ruby
また、 docker build
している最中はインストール後でも rbenv のパスが通ってないので ~/.rbenv/bin/rbenv exec ...
みたいなノリでフルパスを指定しなければならなかった。。
業務都合でデフォルトの version は 2.5.1 としている。
Install bundler
bundle install
したかったので bundler をいれた。
Gemfile.lock の BUNDLED WITH
の version と合わせる必要があったので version を固定にしている。
終わりに
このコンテナで社で負債になっている chef-repo を動かしたかったんだけどビクともしなかった(笑
Author And Source
この問題について(rbenv が入った docker image を作りたい人生だった), 我々は、より多くの情報をここで見つけました https://qiita.com/takat0-h0rikosh1/items/72fb3382fea2760826a7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .