FROM alpine:3.7
MAINTAINER Disassembler <disassembler@dasm.cz>

RUN \
 # Install Ruby runtime dependencies
 apk --no-cache add gdbm libressl readline zlib

RUN \
 # Install Ruby build dependencies
 apk --no-cache add --virtual .deps build-base autoconf gdbm-dev libressl-dev linux-headers readline-dev zlib-dev \
 # Download and unpack Ruby
 && wget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.6.tar.xz -O ruby.tar.xz \
 && 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 \
 # Hackfix to suppress "Insecure world writable dir" warning
 && sed -ni 'p;13a #define ENABLE_PATH_CHECK 0' file.c \
 # Configure compilation + hackfix to detect isnan/isinf macros
 && autoconf \
 && ac_cv_func_isnan=yes ac_cv_func_isinf=yes ./configure --build=x86_64-linux-musl --disable-install-doc --enable-shared \
 # Compile and install Ruby
 && make -j $(nproc) \
 && make install \
 # Install RubyGems and Bundler
 && mkdir -p /usr/local/etc \
 && echo -e 'install: --no-document\nupdate: --no-document' >/usr/local/etc/gemrc \
 && gem update --system \
 # Cleanup
 && cd /tmp \
 && rm -r /usr/src/ruby \
 && apk --no-cache del .deps \
 && rm -rf /root/.gem
