-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
54 lines (45 loc) · 1.76 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
FROM rockylinux:9.3
LABEL [email protected]
ENV HOME "/root"
# https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-1-released/
ENV RUBY_VERSION 3.4.1
ENV RUBY_DOWNLOAD_URL https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.1.tar.gz
ENV RUBY_DOWNLOAD_SHA256 3d385e5d22d368b064c817a13ed8e3cc3f71a7705d7ed1bae78013c33aa7c87f
RUN dnf install -y dnf-plugins-core \
epel-release && \
dnf config-manager --set-enabled crb && \
dnf -y install file-devel \
file \
gcc \
gcc-c++ \
make \
git \
ImageMagick \
ImageMagick-devel \
poppler-utils \
openssl-devel \
zlib-devel \
libffi-devel \
readline-devel \
sqlite-devel \
libyaml-devel \
xz
RUN curl -fsSLO $RUBY_DOWNLOAD_URL && \
echo "$RUBY_DOWNLOAD_SHA256 ruby-$RUBY_VERSION.tar.gz" | sha256sum --check --strict && \
tar -xzf "ruby-$RUBY_VERSION.tar.gz"
# https://github.com/ruby/ruby/blob/master/doc/contributing/building_ruby.md
RUN cd "ruby-$RUBY_VERSION" && \
mkdir "${HOME}/.rubies" && \
./configure --prefix="${HOME}/.rubies/ruby-master" && \
make && \
make test OPTS=-v && \
make install
ENV PATH "${HOME}/.rubies/ruby-master/bin":"$PATH"
# don't create ".bundle" in all our apps
ENV GEM_HOME /usr/local/bundle
ENV BUNDLE_SILENCE_ROOT_WARNING=1 \
BUNDLE_APP_CONFIG="$GEM_HOME"
ENV PATH $GEM_HOME/bin:$PATH
# adjust permissions of a few directories for running "gem install" as an arbitrary user
RUN mkdir -p "$GEM_HOME" && chmod 1777 "$GEM_HOME"
CMD echo $(ruby -v)