summaryrefslogtreecommitdiff
path: root/Containerfile
blob: 0e46cdb8176dc268fb2160a0b7538d964f3644eb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
ARG DEBIAN_VERSION=trixie

FROM debian:${DEBIAN_VERSION}-slim AS builder

ARG CGIT_COMMIT=044821677c774cd24f25f1818ea51d09cc64b006

RUN apt-get update \
    && apt-get install --no-install-recommends -y \
        build-essential \
        ca-certificates \
        git \
        libssl-dev \
        libzip-dev \
        pkg-config \
        zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /src

RUN git init cgit \
    && cd cgit \
    && git remote add origin https://git.zx2c4.com/cgit \
    && git fetch --depth=1 origin "${CGIT_COMMIT}" \
    && git checkout --detach FETCH_HEAD \
    && git submodule update --init --recursive

WORKDIR /src/cgit

RUN make -j"$(nproc)" \
    NO_LUA=1 \
    NO_GETTEXT=YesPlease

RUN make install \
    NO_LUA=1 \
    NO_GETTEXT=YesPlease \
    DESTDIR=/out \
    CGIT_SCRIPT_PATH=/www/cgi-bin \
    CGIT_DATA_PATH=/www


FROM debian:${DEBIAN_VERSION}-slim

RUN apt-get update \
    && apt-get install --no-install-recommends -y \
        busybox-static \
        tini \
        zlib1g \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /out/www /www

RUN mkdir -p \
      /srv/git \
      /var/cache/cgit

EXPOSE 8080

ENTRYPOINT ["/usr/bin/tini", "--", "/bin/busybox", "httpd", "-f", "-p", "0.0.0.0:8080", "-h", "/www"]