-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile
More file actions
67 lines (55 loc) · 2.26 KB
/
Copy pathDockerfile
File metadata and controls
67 lines (55 loc) · 2.26 KB
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
FROM golang:1.26-alpine3.22@sha256:be93003ee861b3b91b6ebcb22678524947e0cd786c2df3f32af520006b1e54f5
SHELL ["/bin/ash", "-o", "pipefail", "-c"]
ARG \
# renovate: datasource=repology depName=alpine_3_22/ca-certificates
CA_CERTIFICATES_VERSION=20260413-r0 \
# renovate: datasource=repology depName=alpine_3_22/dpkg
DPKG_VERSION=1.22.15-r0 \
# renovate: datasource=repology depName=alpine_3_22/gnupg
GNUPG_VERSION=2.4.9-r0 \
# renovate: datasource=repology depName=alpine_3_22/curl
CURL_VERSION=8.14.1-r2 \
# renovate: datasource=repology depName=alpine_3_22/bash
BASH_VERSION=5.2.37-r0 \
# renovate: datasource=repology depName=alpine_3_22/openssl
OPENSSL_VERSION=3.5.6-r0 \
# renovate: datasource=github-releases depName=gosu packageName=tianon/gosu
GOSU_VERSION=1.19
# install gosu
RUN apk add --no-cache --virtual .gosu-deps \
ca-certificates=="${CA_CERTIFICATES_VERSION}" \
dpkg=="${DPKG_VERSION}" \
gnupg=="${GNUPG_VERSION}" && \
dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" && \
wget -q -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" && \
wget -q -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" && \
GNUPGHOME="$(mktemp -d)" && \
export GNUPGHOME && \
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && \
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu && \
gpgconf --kill all && \
rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc && \
apk del --no-network .gosu-deps && \
chmod +x /usr/local/bin/gosu
WORKDIR /app
ENV \
SCYLLARIDAE_LOG_LEVEL=INFO \
SCYLLARIDAE_PORT=8080 \
SCYLLARIDAE_YML_PATH="/app/scyllaridae.yml"
RUN adduser -S -G nobody scyllaridae
RUN apk update && \
apk add --no-cache \
curl=="${CURL_VERSION}" \
bash=="${BASH_VERSION}" \
ca-certificates=="${CA_CERTIFICATES_VERSION}" \
openssl=="${OPENSSL_VERSION}"
# Copy go mod files first for better caching
COPY go.mod go.sum ./
RUN go mod download
# Copy source code
COPY . ./
RUN chown -R scyllaridae:nobody /app /tmp
RUN go build -o /app/scyllaridae && \
go clean -cache -modcache
ENTRYPOINT ["/bin/bash"]
CMD ["/app/docker-entrypoint.sh"]