BeginnerEngineerBlog
中の人
中の人

The last version of net-protocol (>= 0) to support your Ruby & RubyGems was 0.1.2. Try installing it with `gem install net-protocol -v 0.1.2` and then running the current command again

公開: 2023-04-27 14:59
更新: 2023-11-07 17:58
299
php docker mailcatcher ruby gem
20230427現在の方法メモ×20231107現在の方法メモ

こんにちは!

中の人です。

最近少し前に作ったdocker環境をbuildしたらrubyのgemのmailcatcherのインストールがコケたのでインストールできた例をメモで紹介します。

20231107追記
またbuildで失敗したので20231107現在のDockerfileを追記しました。

修正前のDockerfile


FROM php:8.0.16-apache-buster

RUN apt-get update \
    && apt-get install -qy \
    ruby \
    ruby-dev \
    rubygems \
    build-essential \
    libsqlite3-dev \
    && apt-get autoremove \
    && apt-get clean

RUN gem install mailcatcher


error内容


 > [3/3] RUN gem install mailcatcher:
#0 2.088 Building native extensions. This could take a while...
#0 11.43 ERROR:  Error installing mailcatcher:
#0 11.43        The last version of net-protocol (>= 0) to support your Ruby & RubyGems was 0.1.2. Try installing it with `gem install net-protocol -v 0.1.2` and then running the current command again
#0 11.43        net-protocol requires Ruby version >= 2.6.0. The current ruby version is 2.5.0.
#0 11.43 Successfully installed eventmachine-1.0.9.1
#0 11.43 Successfully installed mini_mime-1.1.2
#0 11.43 Successfully installed timeout-0.3.2


修正後のDockerfile


FROM php:8.0.16-apache-buster

RUN apt-get update \
    && apt-get install -qy \
    ruby \
    ruby-dev \
    rubygems \
    build-essential \
    libsqlite3-dev \
    && apt-get autoremove \
    && apt-get clean

RUN gem install sqlite3 --version '1.4.2'
RUN gem install net-protocol --version '0.1.2'
RUN gem install net-smtp --version '0.3.0'
RUN gem install net-imap --version '0.2.2'
RUN gem install mailcatcher --version '0.8.1'

sqlite3のインストールはこちらでの回答を参考にしました

net~~はエラーログにこいつをインストールしてねって書いてあるやつをそのままインストールしました

RUN gem install mailcatcher --version '0.8.1'

こちらは、どうもmailcatcherのlatestがruby2.6.x以上じゃないと無理っぽくて、ドキュメント?にリストされているバージョンを上から試して成功したバージョンになります。


修正後のDockerfile(20231107現在)


もー

FROM php:8.0.16-apache-buster

RUN apt-get update -qq \
  && apt-get install -y \
    ruby \
    ruby-dev \
    rubygems \
    libsqlite3-dev \
  && apt-get autoremove \
  && apt-get clean
RUN gem install sqlite3 -v 1.4.2
RUN gem install timeout -v 0.4.0 # 👈 追加
RUN gem install net-protocol -v 0.1.2
RUN gem install net-imap -v 0.2.2
RUN gem install net-smtp -v 0.3.0
RUN gem install mini_mime -v 1.1.2 # 👈 追加
RUN gem install mailcatcher -v 0.6.5 # 👈 バージョン変更

mailcatcherのインストールが失敗したときに出力されるgemの種類に変更があったので、追加しました

また、mailcatcherのバージョンが下がっていますが、あまりちゃんと確認してないですが、0.8.1がインストールできなくて、下げて下げてで、これがインストールできたのでこのバージョンにしています
(もしかしたらdocker desktopのメモリが少なくてインストールできなかったかもしれません。みなさんの環境ではいけるかも?)


おわりに


久しぶりに立ち上げた環境でコケるとハァァ〜〜ァとため息が出ますおつー
70
0
0
0
通信エラーが発生しました。
似たような記事