40 lines
1.2 KiB
Plaintext
40 lines
1.2 KiB
Plaintext
|
LAYER shared/alpine
|
||
|
LAYER shared/ruby
|
||
|
|
||
|
SCRIPT
|
||
|
# Install Ruby runtime dependencies
|
||
|
apk --no-cache add gdbm libressl readline zlib
|
||
|
|
||
|
# 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
|
||
|
RUN
|