beta

Alpine LinuxコンテナにRubyをインストールする

軽量が売りのAlpine LinuxをベースにしたDockerコンテナにRubyをインストールしようとしたらうまくいかなかったので、対処方法をまとめました。

公開日:2018年9月6日

apk addではインストールができなかった

Alpine Linuxだったら普通はapkでインストールしますよね。自分も他のアプリそうしてたのでインストールしてみたんですが、、、

apk add --update ruby-dev build-base ruby ruby-irb ruby-io-console ruby-rdoc ruby-bundler

ruby -v

Error relocating /usr/lib/libruby.so.2.4: pthread_setname_np: symbol not found

Google先生に聞いても解決できなかったので素直にビルド

alpine-linux-ruby-dockerfile/Dockerfile at master · cblunt/alpine-linux-ruby-dockerfile · GitHub

DEPRECATED: Dockerfile to build alpine linux with specific ruby version - cblunt/alpine-linux-ruby-dockerfile

UN apk add --update linux-headers build-base openssl-dev libc-dev \
                     libxml2-dev libxslt-dev libffi-dev readline-dev \
                     jemalloc-dev git bash wget readline-dev && \

    wget -O ruby-install-0.6.0.tar.gz https://github.com/postmodern/ruby-install/archive/v0.6.0.tar.gz && \

    tar -xzvf ruby-install-0.6.0.tar.gz && \
    cd ruby-install-0.6.0/ && \
    make install && \

    ruby-install --system ruby 2.3.0 && \

    make uninstall && \
    cd / && rm -rf ruby-install-0.6.0 && \

    apk del bash wget linux-headers build-base openssl-dev libc-dev \
        libxml2-dev libxslt-dev libffi-dev \
        jemalloc-dev bash wget

RUN echo "gem: --no-document" > ~/.gemrc

RUN gem install bundler

めっちゃ時間かかるけど、インストールできました!

ruby -v

ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]