概要
Ruby on Rails(とVue.js)を動かすために独自のコンテナを作成しています
作成する上で困った点が合ったのでその内容の共有やより良いDockerfileの書き方に関するご意見あればと思います
現状の設定
下記はUbuntuベースで作っているDockerfileのRuby部分の抜粋です。
rbenvを利用してRuby2.5.1やRailsのcliツールをインストールしています。
Dockerfile
### Rubyのインストール部分抜粋
RUN apt-get install -y rbenv ruby-build ruby-dev
RUN git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
RUN rbenv install -l
RUN rbenv install 2.5.1
RUN rbenv init -
RUN echo 'eval "$(rbenv init -)"' >> ~/.bashrc
RUN rbenv global 2.5.1
RUN rbenv exec gem install bundler
RUN rbenv exec gem install rails
誤った設定
Dockerfile
### Rubyのインストール部分抜粋
RUN apt-get install -y rbenv ruby-build ruby-dev
RUN git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
RUN rbenv install -l
RUN rbenv install 2.5.1
RUN echo 'eval "$(rbenv init -)"' >> ~/.bashrc
RUN rbenv global 2.5.1
RUN gem install bundler
RUN gem install rails
Ruby install後のgemでbundlerなどをインストールしましたが
デフォルトでシステムのRuby(この時2.3系)を見ていました。
確認方法
which bundler
Railsコマンド(rakeコマンド)を利用する際にエラーがでてしまった時点で気づき上記のDockerfileに修正しました。