Skip to content

Instantly share code, notes, and snippets.

@sujaykumarh
Created May 26, 2022 12:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sujaykumarh/00cb4316bf6782bb6ee81a4d3059836e to your computer and use it in GitHub Desktop.
Save sujaykumarh/00cb4316bf6782bb6ee81a4d3059836e to your computer and use it in GitHub Desktop.
ruby-2.4.0

testing

python latest + ruby 2.4.0

Licensed under MIT

FROM python:3.9.13
#COPY --from=ruby:2.4.0 /usr/bin/ruby /usr/bin/ruby
ADD https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.zip /opt/ruby-2.4.0.zip
## use local zip for faster builds
#ADD ruby-2.4.0.zip /opt/ruby-2.4.0.zip
RUN unzip /opt/ruby-2.4.0.zip -d /opt/ && \
rm /opt/ruby-2.4.0.zip
RUN cd /opt/ruby-2.4.0 && \
./configure && \
make && \
make install
# get which ruby
RUN which ruby
RUN ruby --version
# get which gem
RUN which gem
RUN gem --version
# get which bundle
RUN which bundle
RUN bundle --version
## test install gem package
RUN gem install http_parser && which http_parser
FROM ruby:2.4.0 as RUBY_IMG
# get which ruby
RUN which ruby
RUN ruby --version
# get which gem
RUN which gem
RUN gem --version
# get which bundle
RUN which bundle
RUN bundle --version
###############################################################################
### Works but has issues with openssl
# cannot open shared object file: No such file or directory - /usr/local/lib/ruby/2.4.0/x86_64-linux/openssl.so
FROM python:3.9.13
## copy ruby binaries
COPY --from=RUBY_IMG /usr/local/bin/ruby /usr/local/bin/ruby
COPY --from=RUBY_IMG /usr/local/bin/update_rubygems /usr/local/bin/update_rubygems
## copy gem binaries
COPY --from=RUBY_IMG /usr/local/bin/gem /usr/local/bin/gem
COPY --from=RUBY_IMG /usr/local/etc/gemrc /usr/local/etc/gemrc
## copy bundle binaries
COPY --from=RUBY_IMG /usr/local/bin/bundle /usr/local/bin/bundle
COPY --from=RUBY_IMG /usr/local/bundle /usr/local/bundle
## copy ruby dirs
COPY --from=RUBY_IMG /root/.gem /root/.gem
COPY --from=RUBY_IMG /usr/local/lib/ruby /usr/local/lib/ruby
COPY --from=RUBY_IMG /usr/local/include/ruby-2.4.0 /usr/local/include/ruby-2.4.0
COPY --from=RUBY_IMG /usr/local/lib/libruby.so /usr/local/lib/libruby.so
COPY --from=RUBY_IMG /usr/local/lib/libruby.so.2.4.0 /usr/local/lib/libruby.so.2.4.0
COPY --from=RUBY_IMG /usr/local/lib/libruby.so.2.4 /usr/local/lib/libruby.so.2.4
COPY --from=RUBY_IMG /usr/local/lib/pkgconfig/ruby-2.4.pc /usr/local/lib/pkgconfig/ruby-2.4.pc
COPY --from=RUBY_IMG /usr/share/mime/application/x-ruby.xml /usr/share/mime/application/x-ruby.xml
COPY --from=RUBY_IMG /usr/local/share/man/man1/ruby.1 /usr/local/share/man/man1/ruby.1
## setup gem paths
ENV GEM_HOME /usr/local/bundle
ENV PATH $GEM_HOME/bin:$PATH
RUN mkdir -p "$GEM_HOME" &&\
chmod 777 "$GEM_HOME"
RUN apt update && apt install -y --no-install-recommends \
openssl
# CleanUp
RUN apt autoremove -y && \
rm -rf /var/lib/apt/lists/*
# get which ruby
RUN which ruby
RUN ruby --version
# get which gem
RUN which gem
RUN gem --version
# get which bundle
RUN which bundle
RUN bundle --version
## test install gem package
RUN gem install http_parser && which http_parser
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment