Skip to content

Commit ee5da5c

Browse files
committed
Switch to alpine and build q3asm.
This shrinks the image from ~200MB to ~30MB.
1 parent e860fbe commit ee5da5c

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

Dockerfile

+22-8
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,37 @@
1-
FROM debian:bookworm-slim AS builder
1+
FROM alpine:3.20.3 AS builder
22

33
ARG TARGETOS
44
ARG TARGETARCH
55

6-
RUN apt-get update -qq && apt-get install -qq --no-install-recommends build-essential bison
6+
RUN --mount=type=cache,id=${TARGETARCH}/var/cache/apk,target=/var/cache/apk \
7+
apk add --update build-base bison
78

89
ADD /q3lcc /opt/q3lcc
9-
WORKDIR /opt/q3lcc
10+
ADD /q3asm /opt/q3asm
1011

11-
RUN make -j $(nproc) PLATFORM=${TARGETOS} ARCH=${TARGETARCH}
12+
WORKDIR /opt
13+
14+
RUN cd q3lcc && make -j $(nproc) PLATFORM=${TARGETOS} ARCH=${TARGETARCH}
15+
RUN cd q3asm && make -j $(nproc)
1216

1317
WORKDIR /opt/q3lcc/build-${TARGETOS}-${TARGETARCH}
18+
RUN install -s -m 0755 q3lcc q3cpp q3rcc /usr/local/bin/
19+
20+
WORKDIR /opt/q3asm
21+
RUN install -s -m 0755 q3asm /usr/local/bin/
22+
23+
FROM alpine:3.20.3
1424

15-
RUN install -s -m 0755 q3lcc q3cpp q3rcc /usr/local/bin/
25+
ARG TARGETOS
26+
ARG TARGETARCH
1627

17-
FROM debian:bookworm-slim
28+
RUN --mount=type=cache,id=${TARGETARCH}/var/cache/apk,target=/var/cache/apk \
29+
apk add --no-cache cmake bash ninja-build && rm /usr/bin/cpack /usr/bin/ctest
1830

19-
RUN apt-get update -qq && apt-get install -qq --no-install-recommends build-essential cmake ninja-build && mkdir /src
31+
COPY --from=builder /usr/local/bin/q3asm /usr/local/bin/q3lcc /usr/local/bin/q3cpp /usr/local/bin/q3rcc /usr/local/bin/
2032

21-
COPY --from=builder /usr/local/bin/q3lcc /usr/local/bin/q3cpp /usr/local/bin/q3rcc /usr/local/bin/
33+
# cmake needs to have some kind of cc installed, even if not used for regular C code
34+
ENV CC="q3lcc" \
35+
PATH="$PATH:/usr/lib/ninja-build/bin"
2236

2337
WORKDIR /src

0 commit comments

Comments
 (0)