Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FROM alpine:3.6
- # 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 1.8
- ENV RUBY_VERSION 1.8.7-p374
- ENV RUBY_DOWNLOAD_SHA256 876eeeaaeeab10cbf4767833547d66d86d6717ef48fd3d89e27db8926a65276c
- # 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
- # readline-dev vs libedit-dev: https://bugs.ruby-lang.org/issues/11869 and https://github.com/docker-library/ruby/issues/75
- RUN set -ex \
- \
- && apk add --no-cache --virtual .ruby-builddeps \
- autoconf \
- bison \
- bzip2 \
- bzip2-dev \
- ca-certificates \
- coreutils \
- dpkg-dev dpkg \
- gcc \
- gdbm-dev \
- glib-dev \
- libc-dev \
- libffi-dev \
- libressl \
- libressl-dev \
- libxml2-dev \
- libxslt-dev \
- linux-headers \
- make \
- ncurses-dev \
- procps \
- readline-dev \
- ruby \
- tar \
- xz \
- yaml-dev \
- zlib-dev \
- \
- && wget -O ruby.tar.gz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.gz" \
- && echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.gz" | sha256sum -c - \
- \
- && mkdir -p /usr/src/ruby \
- && tar -xzf ruby.tar.gz -C /usr/src/ruby --strip-components=1 \
- && rm ruby.tar.gz \
- \
- && 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)" \
- # the configure script does not detect isnan/isinf as macros
- && export ac_cv_func_isnan=yes ac_cv_func_isinf=yes \
- && ./configure \
- --build="$gnuArch" \
- --disable-install-doc \
- --enable-shared \
- && make -j "$(nproc)" \
- && make install \
- \
- && runDeps="$( \
- scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \
- | tr ',' '\n' \
- | sort -u \
- | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
- )" \
- && apk add --virtual .ruby-rundeps $runDeps \
- bzip2 \
- ca-certificates \
- libffi-dev \
- libressl-dev \
- procps \
- yaml-dev \
- zlib-dev \
- && apk del .ruby-builddeps \
- && cd / \
- && rm -r /usr/src/ruby \
- \
- && gem update --system
- ENV BUNDLER_VERSION 1.15.4
- RUN gem install bundler --version "$BUNDLER_VERSION"
- # 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"
- CMD [ "irb" ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement