forked from parca-dev/parca-agent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.dev
48 lines (37 loc) · 1.85 KB
/
Dockerfile.dev
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
# hadolint ignore=DL3029
FROM --platform="${BUILDPLATFORM:-linux/amd64}" docker.io/goreleaser/goreleaser-cross:v1.20.4@sha256:fb1f5ca7619760381049c4b7405ec71ba14b6430c7a857dcfaa56d83776c1af3 AS builder
# hadolint ignore=DL3008
RUN apt-get update -y --no-install-recommends && \
apt-get install -yq --no-install-recommends\
libelf-dev zlib1g-dev \
libelf-dev:arm64 zlib1g-dev:arm64 \
lld
ARG TARGETARCH=amd64
ARG TARGETOS=linux
ARG TARGETVARIANT
WORKDIR /__w/parca-agent/parca-agent
COPY go.mod go.sum ./
RUN go mod download
ENV GOBIN=/go/bin
# renovate: datasource=go depName=github.com/go-delve/delve
ARG DELVE_VERSION=v1.20.2
# hadolint ignore=DL3059
RUN go install "github.com/go-delve/delve/cmd/dlv@${DELVE_VERSION}"
COPY . ./
RUN goreleaser build --clean --skip-validate --snapshot --debug --id parca-agent-"${TARGETARCH}"
# NOTICE: See goreleaser.yml for the build paths.
RUN mkdir -p /app && \
if [ "${TARGETARCH}" = 'amd64' ]; then \
cp "goreleaser/dist/parca-agent-${TARGETARCH}_${TARGETOS}_${TARGETARCH}_${TARGETVARIANT:-v1}/parca-agent" /app/ ; \
elif [ "${TARGETARCH}" = 'arm' ]; then \
cp "goreleaser/dist/parca-agent-${TARGETARCH}_${TARGETOS}_${TARGETARCH}_${TARGETVARIANT##v}/parca-agent" /app/ ; \
else \
cp "goreleaser/dist/parca-agent-${TARGETARCH}_${TARGETOS}_${TARGETARCH}/parca-agent" /app/ ; \
fi
# hadolint ignore=DL3029
FROM --platform="${TARGETPLATFORM:-linux/amd64}" gcr.io/distroless/base-debian11@sha256:df13a91fd415eb192a75e2ef7eacf3bb5877bb05ce93064b91b83feef5431f37
COPY --chown=0:0 --from=builder /go/bin/dlv /bin/dlv
COPY --chown=0:0 --from=builder /app/parca-agent /bin/parca-agent
COPY --chown=0:0 parca-agent.yaml /bin/parca-agent.yaml
EXPOSE 7071
ENTRYPOINT ["/bin/dlv", "--listen=:40000", "--headless=true", "--api-version=2", "--accept-multiclient", "exec", "--continue", "--"]