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-
211FROM alpine:3.17
222
233# Install dependencies
@@ -85,15 +65,10 @@ RUN git clone https://github.com/crystal-lang/shards \
8565 \
8666 && ([ "$(ldd bin/shards 2>&1 | wc -l)" -eq "1" ] || { echo 'shards is not statically linked' ; ldd bin/shards; exit 1; })
8767
88- COPY --from=debian /bdwgc/.libs/libgc.a /libgc-debian.a
89-
9068ARG package_iteration
9169
9270RUN \
93- # Copy libgc.a to /lib/crystal/
9471 mkdir -p /output/lib/crystal/ \
95- && cp /libgc-debian.a /output/lib/crystal/libgc.a \
96- \
9772 # Install crystal
9873 && make -C /crystal install DESTDIR=/output PREFIX= \
9974 \
Original file line number Diff line number Diff line change @@ -5,6 +5,16 @@ RUN apt-get update \
55
66ENV CFLAGS="-fPIC -pipe ${release:+-O2}"
77
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+
818# build libpcre2
919FROM debian AS libpcre2
1020ARG libpcre2_version
@@ -27,12 +37,14 @@ RUN git clone https://github.com/libevent/libevent \
2737FROM debian
2838ARG crystal_version
2939ARG package_iteration
40+ ARG gc_version
3041ARG libpcre2_version
3142ARG libevent_version
3243
3344RUN mkdir -p /output/lib/crystal/lib/
3445
3546# Copy libraries
47+ COPY --from=bdwgc bdwgc-${gc_version}/.libs/libgc.a /output/lib/crystal/
3648COPY --from=libpcre2 pcre2-${libpcre2_version}/.libs/libpcre2-8.a /output/lib/crystal/
3749COPY --from=libevent libevent/.libs/libevent.a libevent/.libs/libevent_pthreads.a /output/lib/crystal/
3850
You can’t perform that action at this time.
0 commit comments