From e1b8d10b4b65e394f7a67750d6da42cc71b9daa0 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA <hsbt@ruby-lang.org> Date: Fri, 9 Feb 2024 11:19:56 +0900 Subject: [PATCH 1/3] Fix comment --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 084c300..4b65904 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ ARG variant=-slim ARG mirror=http://deb.debian.org/debian ARG system_ruby=ruby2.7 -# Build for 0.*, 1.0*, 1.1*, 1.8 and 1.8.5 +# Build for 0.*, 1.0*, 1.1*, 1.8.0-4, 1.8.5 and 2.0.0 FROM debian:buster-slim ENV DEBIAN_FRONTEND=noninteractive ARG mirror From 4729047fb8b18f190b4559c23751aec571dbb8d1 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA <hsbt@ruby-lang.org> Date: Fri, 9 Feb 2024 11:27:26 +0900 Subject: [PATCH 2/3] Try to build and update base image to bookworm --- Dockerfile | 76 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 56 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4b65904..16b2961 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ ARG os=debian -ARG version=bullseye +ARG version=bookworm ARG variant=-slim ARG mirror=http://deb.debian.org/debian -ARG system_ruby=ruby2.7 +ARG system_ruby=ruby3.1 # Build for 0.*, 1.0*, 1.1*, 1.8.0-4, 1.8.5 and 2.0.0 FROM debian:buster-slim @@ -45,14 +45,13 @@ RUN rm -rf build/*/man build/*/share/man build/*/share/doc build/*/share/ri RUN rm -f build/*/lib/libruby-static.a RUN rm -f build/*/bin/gcc build/*/bin/cc -FROM ${os}:${version}${variant} +# Build for 1.2*, 1.3*, 1.4*, 1.6*, 1.8.6, 1.8.7, 1.9 and 2.1-3.0 +FROM debian:bullseye-slim ENV DEBIAN_FRONTEND=noninteractive ARG mirror -ARG version -ARG system_ruby RUN dpkg --add-architecture i386 \ - && echo "deb-src ${mirror} ${version} main" > /etc/apt/sources.list.d/deb-src.list \ + && echo "deb-src ${mirror} bullseye main" > /etc/apt/sources.list.d/deb-src.list \ && echo 'Dpkg::Use-Pty "0";\nquiet "2";\nAPT::Install-Recommends "0";' > /etc/apt/apt.conf.d/99autopilot \ && echo 'Acquire::HTTP::No-Cache "True";' > /etc/apt/apt.conf.d/99no-cache \ && apt-get update \ @@ -62,9 +61,9 @@ RUN dpkg --add-architecture i386 \ bison \ rdfind \ file \ - lib${system_ruby}:amd64 \ - lib${system_ruby}:i386 \ - && apt-get build-dep ${system_ruby} \ + libruby2.7:amd64 \ + libruby2.7:i386 \ + && apt-get build-dep libruby2.7 \ && rm -rf /var/lib/apt/lists/* COPY --from=0 /build-all-ruby/ /build-all-ruby @@ -93,13 +92,50 @@ RUN rake -j ${j} all-2.6 RUN rake -j ${j} all-2.7 RUN rake -j ${j} all-3.0 -COPY versions/3.1* /all-ruby/versions/ -RUN rake -j ${j} all-3.1 +RUN rm -rf Rakefile versions/ patch/ +RUN rm -rf DIST build/*/log build/*/ruby*/ +RUN rm -rf build/*/man build/*/share/man build/*/share/doc build/*/share/ri +RUN rm -f build/*/lib/libruby-static.a +RUN rm -f build/*/bin/gcc build/*/bin/cc -COPY versions/3.2* /all-ruby/versions/ -RUN rake -j ${j} all-3.2 +FROM ${os}:${version}${variant} +ENV DEBIAN_FRONTEND=noninteractive +ARG mirror +ARG version +ARG system_ruby + +RUN dpkg --add-architecture i386 \ + && echo "deb-src ${mirror} ${version} main" > /etc/apt/sources.list.d/deb-src.list \ + && echo 'Dpkg::Use-Pty "0";\nquiet "2";\nAPT::Install-Recommends "0";' > /etc/apt/apt.conf.d/99autopilot \ + && echo 'Acquire::HTTP::No-Cache "True";' > /etc/apt/apt.conf.d/99no-cache \ + && apt-get update \ + && apt-get install \ + build-essential \ + gcc-multilib \ + bison \ + rdfind \ + file \ + lib${system_ruby}:amd64 \ + lib${system_ruby}:i386 \ + && apt-get build-dep ${system_ruby} \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=1 /build-all-ruby/ /build-all-ruby +COPY --from=1 /all-ruby/ /all-ruby + +WORKDIR /all-ruby -COPY versions/3.3* /all-ruby/versions/ +COPY Rakefile /all-ruby/ +COPY lib/ruby_version.rb /all-ruby/lib/ +COPY patch /all-ruby/patch/ +RUN rake setup_build + +# rake -j interpret non-numeric argument as number of CPUs plus 3. +ARG j=numcpu_plus_alpha + +COPY versions/3.1* versions/3.2* versions/3.3* /all-ruby/versions/ +RUN rake -j ${j} all-3.1 +RUN rake -j ${j} all-3.2 RUN rake -j ${j} all-3.3 COPY lib/* /all-ruby/lib/ @@ -129,24 +165,24 @@ RUN dpkg --add-architecture i386 \ && apt-get update \ && apt-get install \ libc6:i386 \ - libffi7:i386 \ + libffi8:i386 \ libgcc1:i386 \ libgdbm6:i386 \ libncurses5:i386 \ libreadline8:i386 \ - libssl1.1:i386 \ + libssl3:i386 \ zlib1g:i386 \ - libffi7:amd64 \ + libffi8:amd64 \ libgdbm6:amd64 \ libncurses5:amd64 \ libreadline8:amd64 \ - libssl1.1:amd64 \ + libssl3:amd64 \ zlib1g:amd64 \ gcc \ ${system_ruby} \ && rm -rf /var/lib/apt/lists/* -COPY --from=1 /build-all-ruby/ /build-all-ruby -COPY --from=1 /all-ruby/ /all-ruby +COPY --from=2 /build-all-ruby/ /build-all-ruby +COPY --from=2 /all-ruby/ /all-ruby WORKDIR /all-ruby From 07c5a7284ab6adca2ccc715de412f035df258822 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA <hsbt@ruby-lang.org> Date: Fri, 9 Feb 2024 17:09:08 +0900 Subject: [PATCH 3/3] Copy libcrypt.so.1 --- Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Dockerfile b/Dockerfile index 16b2961..83b6c94 100644 --- a/Dockerfile +++ b/Dockerfile @@ -185,4 +185,8 @@ RUN dpkg --add-architecture i386 \ COPY --from=2 /build-all-ruby/ /build-all-ruby COPY --from=2 /all-ruby/ /all-ruby +# for Ruby 0.x and 1.1x +COPY --from=2 /lib/i386-linux-gnu/libcrypt.so.1.1.0 /lib/i386-linux-gnu/libcrypt.so.1.1.0 +RUN cd /lib/i386-linux-gnu && ln -s libcrypt.so.1.1.0 libcrypt.so.1 + WORKDIR /all-ruby