-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathDockerfile.go_agent.compile
More file actions
52 lines (43 loc) · 1.91 KB
/
Dockerfile.go_agent.compile
File metadata and controls
52 lines (43 loc) · 1.91 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
FROM public.ecr.aws/lambda/provided:al2 AS compiler
ARG EXTENSION_VERSION
ARG AGENT_VERSION
ARG BUILD_TAGS
RUN mkdir -p /tmp/dd/datadog-agent
RUN yum install -y wget tar gzip gcc
RUN arch="$(uname -m)"; \
if [ "${arch}" = 'aarch64' ]; then \
arch='arm64'; \
fi; \
if [ "${arch}" = 'x86_64' ]; then \
arch='amd64'; \
fi; \
wget -O go1.23.6.linux-${arch}.tar.gz https://go.dev/dl/go1.23.6.linux-${arch}.tar.gz; \
tar -C /usr/local -xzf go1.23.6.linux-${arch}.tar.gz
# cache dependencies
COPY ./scripts/.cache/go.mod /tmp/dd/datadog-agent
COPY ./scripts/.cache/go.sum /tmp/dd/datadog-agent
WORKDIR /tmp/dd/datadog-agent
# copy source files (/tgz gets unzip automatically by Docker)
ADD ./scripts/.src/datadog-agent.tgz /tmp/dd
# build the extension
WORKDIR /tmp/dd/datadog-agent/cmd/serverless
# add the current version number to the tags package before compilation
RUN --mount=type=cache,target=/root/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
if [ -z "$AGENT_VERSION" ]; then \
/usr/local/go/bin/go build -ldflags="-w \
-X github.com/DataDog/datadog-agent/pkg/serverless/tags.currentExtensionVersion=$EXTENSION_VERSION" \
-tags "${BUILD_TAGS}" -o datadog-agent; \
else \
/usr/local/go/bin/go build -ldflags="-w \
-X github.com/DataDog/datadog-agent/pkg/serverless/tags.currentExtensionVersion=$EXTENSION_VERSION \
-X github.com/DataDog/datadog-agent/pkg/version.agentVersionDefault=$AGENT_VERSION" \
-tags "${BUILD_TAGS}" -o datadog-agent; \
fi
RUN /usr/local/go/bin/go tool nm datadog-agent | grep -w 'github.com/DataDog/datadog-agent/pkg/version.agentVersionDefault' || \
(echo "agentVersionDefault variable doesn't exist" && exit 1)
RUN strip datadog-agent
# keep the smallest possible docker imag
FROM scratch
COPY --from=compiler /tmp/dd/datadog-agent/cmd/serverless/datadog-agent /
ENTRYPOINT ["/datadog-agent"]