LoginSignup
13
8

More than 3 years have passed since last update.

最新のRuby alpine版Dockerイメージでも、RMagickを使いたい!

Last updated at Posted at 2018-06-17

困ったこと…

  • Ruby2.5(alpine3.7) の公式DockerイメージをベースにDockerfileを書いて、RailsでCarrierWaveを使いたい
  • CarrierWaveが依存しているRMagickは、現状ImageMagick6しか対応していないが、alpine3.7ではImageMagickをapt addするとバージョン7が入る
  • apt add するとき、 ImageMagick6にバージョン指定してみても、ないよって怒られる
  • alpine自体のバージョンを落とせばImageMagick6を入れることはできるが、公式イメージではRubyのバージョンも下がってしまう。

解決!

とりあえず ImageMagick6 のパッケージをググって探してみたら…
http://dl-4.alpinelinux.org/alpine/edge/community/x86_64/
あった!

この子たちを落としてくれば、いけるかもっ!
ということで、Dockerfile内で bundle install する前に

WORKDIR /tmp
RUN apk add --update --no-cache curl && \
    curl -O "http://dl-4.alpinelinux.org/alpine/edge/community/x86_64/imagemagick6-{6.9.9.47-r0,c%2B%2B-6.9.9.47-r0,dev-6.9.9.47-r0,doc-6.9.9.47-r0,libs-6.9.9.47-r0}.apk" && \
    apk add --no-cache \
    imagemagick6-c%2B%2B-6.9.9.47-r0.apk \
    imagemagick6-dev-6.9.9.47-r0.apk \
    imagemagick6-libs-6.9.9.47-r0.apk \
    imagemagick6-6.9.9.47-r0.apk

…いけた!RMagickもCarrierWaveも使えた!
やっていることは、curlで必要そうなものを落としてきて、 apk add でファイルからインストールしているだけです。

感想

最新のRubyを軽量なイメージで動かすのって、やっぱり気持ちいい。
あと、RMagickこんなPRも見つけました… マージされないかな…
https://github.com/RMagick/RMagick/pull/299

さいごに

  • この記事は自分用メモです。
  • 詳しいみなさま、間違いやもっと良い方法がございましたら、やさしく教えて下さい。
  • 初Qiita記事!
13
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8