Sign inSign up

voyant/ruby-rmagick

By voyant

•Updated over 8 years ago

Ruby 2.1.4 with imagemagick and graphicsmagick

Image
0

1.1K

voyant/ruby-rmagick repository overview

This image does not have rmagick, but it has dependencies that the gem requires.

Dockerfile

FROM debian:jessie

MAINTAINER Siva Sakthi Karthik Jayaraman [email protected]⁠

⁠Install specific versions

ENV GS_VER 9.15 ENV MAGICK_VER 7.0.5-10

WORKDIR /tmp/install

⁠Get basic utils

RUN apt-get update && apt-get install -y --no-install-recommends
apt-utils
bzip2
ca-certificates
curl
wget
dcraw
autoconf
automake
build-essential
libx11-dev
libfreetype6
libfreetype6-dev
libgif4
libgif-dev
libjasper1
libjasper-dev
libturbojpeg1
libturbojpeg1-dev
liblcms2-2
liblcms2-dev
# libperl-dev
libpng12-0
libpng12-dev
libtiff5
libtiff5-dev
libwmf0.2-7
libwmf-dev
libxml2
libxml2-dev
zlib1g
zlib1g-dev
&& rm -rf /var/lib/apt/lists/*

RUN curl -L -O http://downloads.ghostscript.com/public/old-gs-releases/ghostscript-${GS_VER}.tar.gz⁠
&& tar -xzf ghostscript-${GS_VER}.tar.gz
&& cd ghostscript-${GS_VER}
&& ./configure
&& make
&& make install
&& make clean
&& ldconfig
&& cd /tmp/install
&& rm -rf ghostscript-${GS_VER}*
&& curl -L -O http://www.imagemagick.org/download/releases/ImageMagick-${MAGICK_VER}.tar.xz⁠
&& tar -xf ImageMagick-${MAGICK_VER}.tar.xz
&& cd ImageMagick-${MAGICK_VER}
&& ./configure --enable-shared --with-gslib --with-wmf --without-x --with-xml
--with-freetype --with-fontconfig --with-quantum-depth=8 --with-perl=no
&& make
&& make install
&& make clean
&& ldconfig
&& cd /tmp/install
&& rm -rf ImageMagick-${MAGICK_VER}*
&& rm -rf /var/lib/apt/lists/*

⁠Ruby begins

RUN apt-get update
&& apt-get install -y --no-install-recommends
bzip2
ca-certificates
libffi-dev
libgdbm3
libssl-dev
libyaml-dev
procps
zlib1g-dev
&& rm -rf /var/lib/apt/lists/*

⁠skip installing gem documentation

RUN mkdir -p /usr/local/etc
&& {
echo 'install: --no-document';
echo 'update: --no-document';
} >> /usr/local/etc/gemrc

ENV RUBY_MAJOR 2.1 ENV RUBY_VERSION 2.1.4 ENV RUBY_DOWNLOAD_SHA256 e1cc5cbbcaa8644e282f04763d96057ddd6f443338a5019200e8726273e84fcf ENV RUBYGEMS_VERSION 2.7.6 ENV BUNDLER_VERSION 1.16.1

⁠some of ruby's build scripts are written in ruby

⁠we purge system ruby later to make sure our final image uses what we just built

RUN set -ex

&& buildDeps='
autoconf
bison
dpkg-dev
gcc
libbz2-dev
libgdbm-dev
libglib2.0-dev
libncurses-dev
libreadline-dev
libxml2-dev
libxslt-dev
make
ruby
wget
xz-utils
'
&& apt-get update
&& apt-get install -y --no-install-recommends $buildDeps
&& rm -rf /var/lib/apt/lists/*

&& wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz⁠"
&& echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum -c -

&& mkdir -p /usr/src/ruby
&& tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1
&& rm ruby.tar.xz

&& cd /usr/src/ruby
\

⁠hack in "ENABLE_PATH_CHECK" disabling to suppress:

⁠warning: Insecure world writable dir

&& {
echo '#define ENABLE_PATH_CHECK 0';
echo;
cat file.c;
} > file.c.new
&& mv file.c.new file.c

&& autoconf
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"
&& ./configure
--build="$gnuArch"
--disable-install-doc
--enable-shared
&& make -j "$(nproc)"
&& make install

&& dpkg-query --show --showformat '${package}\n'
| grep -P '^libreadline\d+$'
| xargs apt-mark manual
&& apt-get purge -y --auto-remove $buildDeps
&& cd /
&& rm -r /usr/src/ruby

&& gem update --system "$RUBYGEMS_VERSION"
&& gem install bundler --version "$BUNDLER_VERSION" --force
&& rm -r /root/.gem/

⁠install things globally, for great justice

⁠and don't create ".bundle" in all our apps

ENV GEM_HOME /usr/local/bundle ENV BUNDLE_PATH="$GEM_HOME"
BUNDLE_BIN="$GEM_HOME/bin"
BUNDLE_SILENCE_ROOT_WARNING=1
BUNDLE_APP_CONFIG="$GEM_HOME" ENV PATH $BUNDLE_BIN:$PATH RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN"
&& chmod 777 "$GEM_HOME" "$BUNDLE_BIN"
&& apt-get update
&& apt-get install -y --no-install-recommends libgmp3-dev ruby-dev build-essential libpq-dev graphicsmagick graphicsmagick-libmagick-dev-compat libgraphicsmagick1-dev
&& rm -rf /var/lib/apt/lists/*

Tag summary

Content type

Image

Digest

Size

297.2 MB

Last updated

over 8 years ago

docker pull voyant/ruby-rmagick