@@ -5,12 +5,9 @@ ARG mirror=http://deb.debian.org/debian
55ARG system_ruby=ruby2.7
66
77# =============================================================================
8- # Aggregator: Combine all build outputs and deduplicate with rdfind
8+ # Merge: ruby-0.x-2.0 through ruby-3.1
99# =============================================================================
10- FROM ${os}:${version}${variant} AS aggregator
11- ENV DEBIAN_FRONTEND=noninteractive
12-
13- RUN apt-get update && apt-get install -y rdfind && rm -rf /var/lib/apt/lists/*
10+ FROM ${os}:${version}${variant} AS ruby-0.x-3.1
1411
1512COPY --from=docker.io/rubylang/all-ruby:ruby-0.x-2.0 /build-all-ruby/ /build-all-ruby/
1613COPY --from=docker.io/rubylang/all-ruby:ruby-1.2-1.8.7 /build-all-ruby/ /build-all-ruby/
@@ -24,15 +21,50 @@ COPY --from=docker.io/rubylang/all-ruby:ruby-2.6 /build-all-ruby/ /build-all-rub
2421COPY --from=docker.io/rubylang/all-ruby:ruby-2.7 /build-all-ruby/ /build-all-ruby/
2522COPY --from=docker.io/rubylang/all-ruby:ruby-3.0 /build-all-ruby/ /build-all-ruby/
2623COPY --from=docker.io/rubylang/all-ruby:ruby-3.1 /build-all-ruby/ /build-all-ruby/
24+
25+ COPY --from=docker.io/rubylang/all-ruby:ruby-0.x-2.0 /all-ruby/ /all-ruby/
26+ COPY --from=docker.io/rubylang/all-ruby:ruby-1.2-1.8.7 /all-ruby/bin/ /all-ruby/bin/
27+ COPY --from=docker.io/rubylang/all-ruby:ruby-1.9 /all-ruby/bin/ /all-ruby/bin/
28+ COPY --from=docker.io/rubylang/all-ruby:ruby-2.1 /all-ruby/bin/ /all-ruby/bin/
29+ COPY --from=docker.io/rubylang/all-ruby:ruby-2.2 /all-ruby/bin/ /all-ruby/bin/
30+ COPY --from=docker.io/rubylang/all-ruby:ruby-2.3 /all-ruby/bin/ /all-ruby/bin/
31+ COPY --from=docker.io/rubylang/all-ruby:ruby-2.4 /all-ruby/bin/ /all-ruby/bin/
32+ COPY --from=docker.io/rubylang/all-ruby:ruby-2.5 /all-ruby/bin/ /all-ruby/bin/
33+ COPY --from=docker.io/rubylang/all-ruby:ruby-2.6 /all-ruby/bin/ /all-ruby/bin/
34+ COPY --from=docker.io/rubylang/all-ruby:ruby-2.7 /all-ruby/bin/ /all-ruby/bin/
35+ COPY --from=docker.io/rubylang/all-ruby:ruby-3.0 /all-ruby/bin/ /all-ruby/bin/
36+ COPY --from=docker.io/rubylang/all-ruby:ruby-3.1 /all-ruby/bin/ /all-ruby/bin/
37+
38+ # =============================================================================
39+ # Merge: ruby-3.2 through ruby-3.5-4.0
40+ # =============================================================================
41+ FROM ${os}:${version}${variant} AS ruby-3.2-4.0
42+
2743COPY --from=docker.io/rubylang/all-ruby:ruby-3.2 /build-all-ruby/ /build-all-ruby/
2844COPY --from=docker.io/rubylang/all-ruby:ruby-3.3 /build-all-ruby/ /build-all-ruby/
2945COPY --from=docker.io/rubylang/all-ruby:ruby-3.4 /build-all-ruby/ /build-all-ruby/
3046COPY --from=docker.io/rubylang/all-ruby:ruby-3.5-4.0 /build-all-ruby/ /build-all-ruby/
3147
48+ COPY --from=docker.io/rubylang/all-ruby:ruby-3.2 /all-ruby/bin/ /all-ruby/bin/
49+ COPY --from=docker.io/rubylang/all-ruby:ruby-3.3 /all-ruby/bin/ /all-ruby/bin/
50+ COPY --from=docker.io/rubylang/all-ruby:ruby-3.4 /all-ruby/bin/ /all-ruby/bin/
51+ COPY --from=docker.io/rubylang/all-ruby:ruby-3.5-4.0 /all-ruby/bin/ /all-ruby/bin/
52+
53+ # =============================================================================
54+ # Dedup: Combine merged images and deduplicate with rdfind
55+ # =============================================================================
56+ FROM ${os}:${version}${variant} AS dedup
57+ ENV DEBIAN_FRONTEND=noninteractive
58+
59+ RUN apt-get update && apt-get install -y rdfind && rm -rf /var/lib/apt/lists/*
60+
61+ COPY --from=docker.io/rubylang/all-ruby:ruby-0.x-3.1 /build-all-ruby/ /build-all-ruby/
62+ COPY --from=docker.io/rubylang/all-ruby:ruby-3.2-4.0 /build-all-ruby/ /build-all-ruby/
63+
3264RUN rdfind -makehardlinks true -makeresultsfile false /build-all-ruby
3365
3466# =============================================================================
35- # Final: Runtime image
67+ # Runtime image
3668# =============================================================================
3769FROM ${os}:${version}${variant}
3870ENV DEBIAN_FRONTEND=noninteractive
@@ -66,23 +98,9 @@ RUN dpkg --add-architecture i386 \
6698 ${system_ruby} \
6799 && rm -rf /var/lib/apt/lists/*
68100
69- COPY --from=aggregator /build-all-ruby/ /build-all-ruby/
70- COPY --from=docker.io/rubylang/all-ruby:ruby-0.x-2.0 /all-ruby/ /all-ruby/
71- COPY --from=docker.io/rubylang/all-ruby:ruby-1.2-1.8.7 /all-ruby/bin/ /all-ruby/bin/
72- COPY --from=docker.io/rubylang/all-ruby:ruby-1.9 /all-ruby/bin/ /all-ruby/bin/
73- COPY --from=docker.io/rubylang/all-ruby:ruby-2.1 /all-ruby/bin/ /all-ruby/bin/
74- COPY --from=docker.io/rubylang/all-ruby:ruby-2.2 /all-ruby/bin/ /all-ruby/bin/
75- COPY --from=docker.io/rubylang/all-ruby:ruby-2.3 /all-ruby/bin/ /all-ruby/bin/
76- COPY --from=docker.io/rubylang/all-ruby:ruby-2.4 /all-ruby/bin/ /all-ruby/bin/
77- COPY --from=docker.io/rubylang/all-ruby:ruby-2.5 /all-ruby/bin/ /all-ruby/bin/
78- COPY --from=docker.io/rubylang/all-ruby:ruby-2.6 /all-ruby/bin/ /all-ruby/bin/
79- COPY --from=docker.io/rubylang/all-ruby:ruby-2.7 /all-ruby/bin/ /all-ruby/bin/
80- COPY --from=docker.io/rubylang/all-ruby:ruby-3.0 /all-ruby/bin/ /all-ruby/bin/
81- COPY --from=docker.io/rubylang/all-ruby:ruby-3.1 /all-ruby/bin/ /all-ruby/bin/
82- COPY --from=docker.io/rubylang/all-ruby:ruby-3.2 /all-ruby/bin/ /all-ruby/bin/
83- COPY --from=docker.io/rubylang/all-ruby:ruby-3.3 /all-ruby/bin/ /all-ruby/bin/
84- COPY --from=docker.io/rubylang/all-ruby:ruby-3.4 /all-ruby/bin/ /all-ruby/bin/
85- COPY --from=docker.io/rubylang/all-ruby:ruby-3.5-4.0 /all-ruby/bin/ /all-ruby/bin/
101+ COPY --from=dedup /build-all-ruby/ /build-all-ruby/
102+ COPY --from=docker.io/rubylang/all-ruby:ruby-0.x-3.1 /all-ruby/ /all-ruby/
103+ COPY --from=docker.io/rubylang/all-ruby:ruby-3.2-4.0 /all-ruby/bin/ /all-ruby/bin/
86104
87105COPY lib/* /all-ruby/lib/
88106COPY all-ruby /all-ruby/
0 commit comments