|
| 1 | +FROM ubuntu:latest as builder |
| 2 | +ARG ARCH |
| 3 | + |
| 4 | +# make the args mandatory |
| 5 | +RUN : "${ARCH:?ARCH needs to be provided}" |
| 6 | + |
| 7 | +RUN apt-get update && \ |
| 8 | + apt-get install -y zip curl |
| 9 | + |
| 10 | +# Copy current branch tracer build |
| 11 | +COPY /tracer-build /datadog |
| 12 | + |
| 13 | +WORKDIR /opt |
| 14 | + |
| 15 | +# remove some useless files in a serverless context to keep the package as small as possible |
| 16 | +RUN rm datadog/createLogPath.sh && \ |
| 17 | + rm datadog/*.so && \ |
| 18 | + rm datadog/loader.conf && \ |
| 19 | + rm datadog/**/loader.conf && \ |
| 20 | + rm datadog/**/libddwaf.so && \ |
| 21 | + rm datadog/**/Datadog.Trace.ClrProfiler.Native.so && \ |
| 22 | + rm datadog/**/Datadog.Linux.ApiWrapper.x64.so && \ |
| 23 | + rm datadog/**/Datadog.Profiler.Native.so && \ |
| 24 | + rm datadog/**/Datadog.Trace.MSBuild.* && \ |
| 25 | + rm datadog/**/*.pdb && \ |
| 26 | + rm datadog/**/*.xml && \ |
| 27 | + rm datadog/dd-dotnet.sh && \ |
| 28 | + rm datadog/**/dd-dotnet && \ |
| 29 | + rm -rf datadog/netstandard2.0 && \ |
| 30 | + rm -rf datadog/netcoreapp3.1 && \ |
| 31 | + rm -rf datadog/continuousprofiler |
| 32 | + |
| 33 | +# HACK: rename the tracer library so the logic in datadog_wrapper keeps working |
| 34 | +# See also https://github.com/DataDog/datadog-lambda-extension/pull/150 |
| 35 | +RUN if [ -f datadog/linux-x64/Datadog.Tracer.Native.so ]; then mv datadog/linux-x64/Datadog.Tracer.Native.so datadog/linux-x64/Datadog.Trace.ClrProfiler.Native.so; fi |
| 36 | +RUN if [ -f datadog/linux-arm64/Datadog.Tracer.Native.so ]; then mv datadog/linux-arm64/Datadog.Tracer.Native.so datadog/linux-arm64/Datadog.Trace.ClrProfiler.Native.so; fi |
| 37 | + |
| 38 | +# zip the layer |
| 39 | +RUN mkdir /datadog |
| 40 | +RUN zip -r -9 /datadog/dd_trace_dotnet.zip datadog |
| 41 | + |
| 42 | +# keep the smallest possible docker image |
| 43 | +FROM scratch |
| 44 | +COPY --from=builder /datadog/dd_trace_dotnet.zip / |
| 45 | +ENTRYPOINT ["/dd_trace_dotnet.zip"] |
0 commit comments