-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
101 lines (73 loc) · 2.33 KB
/
Dockerfile
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
ARG alpine_version=3.20.3
FROM alpine:${alpine_version} as base
RUN apk update && apk upgrade
#
# git-gau build stage
#
FROM base as gitgau-build
RUN apk add --no-cache make
RUN mkdir /src /dist
ARG gitgau_ref=v1.4.0
ENV gitgau_ref ${gitgau_ref}
ADD "https://codeload.github.com/znerol/git-gau/tar.gz/${gitgau_ref}" /src/git-gau-src.tar.gz
RUN tar -o -C /src -xf /src/git-gau-src.tar.gz
RUN make -C /src/git-gau-* prefix=/dist install-bin
#
# certhub build stage
#
FROM base as certhub-build
RUN apk add --no-cache make
RUN mkdir /src /dist
ARG certhub_ref=v1.3.0
ENV certhub_ref ${certhub_ref}
ADD "https://codeload.github.com/certhub/certhub/tar.gz/${certhub_ref}" /src/certhub-src.tar.gz
RUN tar -o -C /src -xf /src/certhub-src.tar.gz
RUN make -C /src/certhub-* prefix=/dist install-bin
#
# lego build stage
#
FROM base as lego-build
RUN apk add --no-cache make musl-dev git go
RUN mkdir /src /dist
ARG lego_ref=v4.18.0
ENV lego_ref ${lego_ref}
ENV GOPATH /go
RUN mkdir -p /go/src/github.com/go-acme && \
git clone --recurse https://github.com/go-acme/lego.git /go/src/github.com/go-acme/lego && \
git -C /go/src/github.com/go-acme/lego checkout "${lego_ref}" && \
make -C /go/src/github.com/go-acme/lego build && \
install -m 0755 -D /go/src/github.com/go-acme/lego/dist/lego /dist/bin/lego
#
# docs stage
#
FROM base as docs-build
RUN mkdir /dist /dist-etc
ARG build_log_url
ENV build_log_url ${build_log_url}
ARG build_log_label
ENV build_log_label ${build_log_label}
COPY . /src
RUN if [ -n "${build_log_url}" ] && [ -n "${build_log_label}" ]; then \
sed -i "s|.*Build Status.*$|Build Log: [${build_log_label}](${build_log_url})|g" /src/README.md; \
fi
RUN install -m 0644 -D /src/README.md /dist-etc/motd && \
install -m 0755 -D /src/docker-entry.d/00-motd /dist/lib/git-gau/docker-entry.d/00-motd
#
# runtime image stage
#
FROM base
RUN apk add --no-cache ca-certificates curl git openssh-client openssl tini tzdata
COPY --from=gitgau-build /dist /usr
COPY --from=certhub-build /dist /usr
COPY --from=lego-build /dist /usr
COPY --from=docs-build /dist /usr
COPY --from=docs-build /dist-etc /etc
RUN addgroup -S certhub && adduser -S certhub -G certhub
USER certhub
ENTRYPOINT [ \
"/sbin/tini", \
"--", \
"/usr/bin/ssh-agent", \
"/usr/lib/git-gau/docker-entry", \
"/usr/lib/git-gau/docker-entry.d" \
]