File tree Expand file tree Collapse file tree 2 files changed +12
-25
lines changed Expand file tree Collapse file tree 2 files changed +12
-25
lines changed Original file line number Diff line number Diff line change 1
- FROM debian:11 AS debian
2
-
3
- RUN apt-get update \
4
- && apt-get install -y build-essential libevent-dev libpcre2-dev automake libtool pkg-config git curl llvm-13 clang-13 \
5
- && (pkg-config || true)
6
-
7
- ARG release
8
- ENV CFLAGS="-fPIC -pipe ${release:+-O2}"
9
- ENV CC="clang-13"
10
-
11
- # Build libgc
12
- ARG gc_version
13
-
14
- RUN git clone https://github.com/ivmai/bdwgc \
15
- && cd bdwgc \
16
- && git checkout ${gc_version} \
17
- && ./autogen.sh \
18
- && ./configure --disable-debug --disable-shared --enable-large-config \
19
- && make -j$(nproc)
20
-
21
1
FROM alpine:3.17
22
2
23
3
# Install dependencies
@@ -85,15 +65,10 @@ RUN git clone https://github.com/crystal-lang/shards \
85
65
\
86
66
&& ([ "$(ldd bin/shards 2>&1 | wc -l)" -eq "1" ] || { echo 'shards is not statically linked' ; ldd bin/shards; exit 1; })
87
67
88
- COPY --from=debian /bdwgc/.libs/libgc.a /libgc-debian.a
89
-
90
68
ARG package_iteration
91
69
92
70
RUN \
93
- # Copy libgc.a to /lib/crystal/
94
71
mkdir -p /output/lib/crystal/ \
95
- && cp /libgc-debian.a /output/lib/crystal/libgc.a \
96
- \
97
72
# Install crystal
98
73
&& make -C /crystal install DESTDIR=/output PREFIX= \
99
74
\
Original file line number Diff line number Diff line change @@ -5,6 +5,16 @@ RUN apt-get update \
5
5
6
6
ENV CFLAGS="-fPIC -pipe ${release:+-O2}"
7
7
8
+ # Build libgc
9
+ FROM debian AS bdwgc
10
+ ARG gc_version
11
+ RUN curl -L https://github.com/ivmai/bdwgc/archive/refs/tags/${gc_version}.tar.gz | tar -zx \
12
+ && mv bdwgc-* bdwgc-${gc_version} \
13
+ && cd bdwgc-${gc_version} \
14
+ && ./autogen.sh \
15
+ && ./configure --disable-debug --disable-shared --enable-large-config \
16
+ && make -j$(nproc)
17
+
8
18
# build libpcre2
9
19
FROM debian AS libpcre2
10
20
ARG libpcre2_version
@@ -27,12 +37,14 @@ RUN git clone https://github.com/libevent/libevent \
27
37
FROM debian
28
38
ARG crystal_version
29
39
ARG package_iteration
40
+ ARG gc_version
30
41
ARG libpcre2_version
31
42
ARG libevent_version
32
43
33
44
RUN mkdir -p /output/lib/crystal/lib/
34
45
35
46
# Copy libraries
47
+ COPY --from=bdwgc bdwgc-${gc_version}/.libs/libgc.a /output/lib/crystal/
36
48
COPY --from=libpcre2 pcre2-${libpcre2_version}/.libs/libpcre2-8.a /output/lib/crystal/
37
49
COPY --from=libevent libevent/.libs/libevent.a libevent/.libs/libevent_pthreads.a /output/lib/crystal/
38
50
You can’t perform that action at this time.
0 commit comments