-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathDockerfile.template
42 lines (36 loc) · 1.67 KB
/
Dockerfile.template
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
FROM alpine:@@alpine@@
LABEL org.opencontainers.image.authors="[email protected]"
RUN set -eux; \
apk add --no-cache --virtual .run-deps ca-certificates su-exec tzdata; \
adduser -u 1000 -S -D -H krakend;
RUN set -eux; \
apk add --no-cache --virtual .build-deps gnupg; \
arch="$(apk --print-arch)"; \
case "$arch" in \
'x86_64') \
export GOARCH='amd64' GOOS='linux'; \
export KRAKEND_DOWNLOAD_SHA512=@@sha512sum_amd64@@; \
;; \
'aarch64') \
export GOARCH='arm64' GOOS='linux'; \
export KRAKEND_DOWNLOAD_SHA512=@@sha512sum_arm64@@; \
;; \
*) echo >&2 "error: unsupported architecture '$TARGETARCH' (likely packaging update needed)"; exit 1 ;; \
esac; \
wget -O krakend.tar.gz "https://github.com/krakendio/krakend-ce/releases/download/v@@version@@/krakend_@@version@@_${GOARCH}_alpine.tar.gz"; \
wget -O krakend.tar.gz.asc "https://github.com/krakendio/krakend-ce/releases/download/v@@version@@/krakend_@@version@@_${GOARCH}_alpine.tar.gz.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 5B270F2E01E375FD9D5635E25DE6FD698AD6FDD2; \
gpg --batch --verify krakend.tar.gz.asc krakend.tar.gz; \
gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
echo "$KRAKEND_DOWNLOAD_SHA512 *krakend.tar.gz" | sha512sum -c; \
tar -xzf krakend.tar.gz -C / --strip-components 1; \
rm -f krakend.tar.gz krakend.tar.gz.asc; \
apk del --no-network .build-deps; \
echo '{ "version": @@config_version@@ }' > /etc/krakend/krakend.json
WORKDIR /etc/krakend
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT [ "docker-entrypoint.sh" ]
EXPOSE 8080 8090
CMD [ "krakend", "run", "-c", "krakend.json" ]