diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..896a6fb --- /dev/null +++ b/.gitattributes @@ -0,0 +1,9 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +# Set line endings to LF, even on Windows. Otherwise, execution within Docker fails. +# See https://help.github.com/articles/dealing-with-line-endings/ +*.sh text eol=lf +*.bash text eol=lf diff --git a/scripts/Dockerfile b/scripts/Dockerfile index 9d66737..e88cd25 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:latest as builder +FROM ubuntu:latest AS builder ARG TRACER_VERSION ARG ARCH @@ -19,32 +19,24 @@ RUN dpkg -i /tmp/tracer.deb WORKDIR /opt -# remove some useless files in a serverless context to keep the package as small as possible -RUN rm datadog/createLogPath.sh && \ - rm datadog/*.so && \ - rm datadog/loader.conf && \ - rm datadog/**/loader.conf && \ - rm datadog/**/libddwaf.so && \ - # Revise to use 'Datadog.Trace.ClrProfiler.Native.so' for profiling, which calls - # 'Datadog.Trace.Native.so' and 'Datadog.Trace.Profiler.so'. - rm datadog/**/Datadog.Trace.ClrProfiler.Native.so && \ - rm datadog/**/Datadog.Linux.ApiWrapper.x64.so && \ - rm datadog/**/Datadog.Profiler.Native.so && \ - rm datadog/**/Datadog.Trace.MSBuild.* && \ - rm datadog/**/*.pdb && \ - rm datadog/**/*.xml && \ - rm datadog/dd-dotnet.sh && \ - rm datadog/**/dd-dotnet && \ +# remove files unused in a serverless context to keep the package as small as possible +RUN rm -f datadog/createLogPath.sh && \ + rm -f datadog/*.so && \ + rm -f datadog/loader.conf && \ + rm -f datadog/**/libddwaf.so && \ + rm -f datadog/**/Datadog.Linux.ApiWrapper.x64.so && \ + rm -f datadog/**/Datadog.Profiler.Native.so && \ + rm -f datadog/**/Datadog.Trace.MSBuild.* && \ + rm -f datadog/**/libdatadog_profiling.so \ + rm -f datadog/**/*.pdb && \ + rm -f datadog/**/*.xml && \ + rm -f datadog/dd-dotnet.sh && \ + rm -f datadog/**/dd-dotnet && \ + rm -rf datadog/net461 && \ rm -rf datadog/netstandard2.0 && \ rm -rf datadog/netcoreapp3.1 && \ - rm -rf datadog/continuousprofiler - -# HACK: rename the tracer library so the logic in datadog_wrapper keeps working -# See also https://github.com/DataDog/datadog-lambda-extension/pull/150 -# -# We are doing this because the actual 'Datadog.Trace.ClrProfiler.Native.so' is a demux which calls this binary and 'Datadog.Trace.Profiler.so'. -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 -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 + rm -rf datadog/continuousprofiler \ + rm -rf datadog/win-* # add file with tracer version RUN echo ${TRACER_VERSION} > datadog/tracer_version.txt diff --git a/scripts/Dockerfile.benchmark b/scripts/Dockerfile.benchmark index 0ec023e..46f1736 100644 --- a/scripts/Dockerfile.benchmark +++ b/scripts/Dockerfile.benchmark @@ -1,4 +1,4 @@ -FROM ubuntu:latest as builder +FROM ubuntu:latest AS builder ARG ARCH # make the args mandatory @@ -11,28 +11,24 @@ WORKDIR /opt # Copy current branch tracer build COPY tracer-build datadog -# remove some useless files in a serverless context to keep the package as small as possible +# remove files unused in a serverless context to keep the package as small as possible RUN rm -f datadog/createLogPath.sh && \ rm -f datadog/*.so && \ rm -f datadog/loader.conf && \ - rm -f datadog/**/loader.conf && \ rm -f datadog/**/libddwaf.so && \ - rm -f datadog/**/Datadog.Trace.ClrProfiler.Native.so && \ rm -f datadog/**/Datadog.Linux.ApiWrapper.x64.so && \ rm -f datadog/**/Datadog.Profiler.Native.so && \ rm -f datadog/**/Datadog.Trace.MSBuild.* && \ + rm -f datadog/**/libdatadog_profiling.so \ rm -f datadog/**/*.pdb && \ rm -f datadog/**/*.xml && \ rm -f datadog/dd-dotnet.sh && \ rm -f datadog/**/dd-dotnet && \ + rm -rf datadog/net461 && \ rm -rf datadog/netstandard2.0 && \ rm -rf datadog/netcoreapp3.1 && \ - rm -rf datadog/continuousprofiler - -# HACK: rename the tracer library so the logic in datadog_wrapper keeps working -# See also https://github.com/DataDog/datadog-lambda-extension/pull/150 -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 -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 + rm -rf datadog/continuousprofiler \ + rm -rf datadog/win-* # zip the layer RUN mkdir /datadog diff --git a/scripts/Dockerfile.r2r b/scripts/Dockerfile.r2r index 0492c97..2dd6d75 100644 --- a/scripts/Dockerfile.r2r +++ b/scripts/Dockerfile.r2r @@ -21,32 +21,24 @@ RUN mkdir -p datadog RUN if [ "${ARCH}" = "amd64" ]; then cp -r artifacts/x64/* datadog; fi RUN if [ "${ARCH}" = "arm64" ]; then cp -r artifacts/arm64/* datadog; fi -# remove some useless files in a serverless context to keep the package as small as possible +# remove files unused in a serverless context to keep the package as small as possible RUN rm -f datadog/createLogPath.sh && \ rm -f datadog/*.so && \ rm -f datadog/loader.conf && \ - rm -f datadog/**/loader.conf && \ rm -f datadog/**/libddwaf.so && \ - # Revise to use 'Datadog.Trace.ClrProfiler.Native.so' for profiling, which calls - # 'Datadog.Trace.Native.so' and 'Datadog.Trace.Profiler.so'. - rm -f datadog/**/Datadog.Trace.ClrProfiler.Native.so && \ rm -f datadog/**/Datadog.Linux.ApiWrapper.x64.so && \ rm -f datadog/**/Datadog.Profiler.Native.so && \ rm -f datadog/**/Datadog.Trace.MSBuild.* && \ + rm -f datadog/**/libdatadog_profiling.so \ rm -f datadog/**/*.pdb && \ rm -f datadog/**/*.xml && \ rm -f datadog/dd-dotnet.sh && \ rm -f datadog/**/dd-dotnet && \ + rm -rf datadog/net461 && \ rm -rf datadog/netstandard2.0 && \ rm -rf datadog/netcoreapp3.1 && \ - rm -rf datadog/continuousprofiler - -# HACK: rename the tracer library so the logic in datadog_wrapper keeps working -# See also https://github.com/DataDog/datadog-lambda-extension/pull/150 -# -# We are doing this because the actual 'Datadog.Trace.ClrProfiler.Native.so' is a demux which calls this binary and 'Datadog.Trace.Profiler.so'. -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 -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 + rm -rf datadog/continuousprofiler \ + rm -rf datadog/win-* # add file with tracer version RUN echo ${TRACER_VERSION} > datadog/tracer_version.txt diff --git a/scripts/Dockerfile.sandbox b/scripts/Dockerfile.sandbox index b8c83e1..0257f6b 100644 --- a/scripts/Dockerfile.sandbox +++ b/scripts/Dockerfile.sandbox @@ -1,4 +1,4 @@ -FROM ubuntu:latest as builder +FROM ubuntu:latest AS builder ARG TRACER_VERSION ARG ARCH @@ -23,26 +23,24 @@ WORKDIR /opt RUN rm /opt/datadog/net6.0/Datadog.Trace.dll COPY /Datadog.Trace.dll /opt/datadog/net6.0/Datadog.Trace.dll -# remove some useless files in a serverless context to keep the package as small as possible -RUN rm datadog/createLogPath.sh && \ - rm datadog/*.so && \ - rm datadog/loader.conf && \ - rm datadog/**/loader.conf && \ - rm datadog/**/libddwaf.so && \ - rm datadog/**/Datadog.Trace.ClrProfiler.Native.so && \ - rm datadog/**/Datadog.Linux.ApiWrapper.x64.so && \ - rm datadog/**/Datadog.Profiler.Native.so && \ - rm datadog/**/Datadog.Trace.MSBuild.* && \ - rm datadog/**/*.pdb && \ - rm datadog/**/*.xml && \ +# remove files unused in a serverless context to keep the package as small as possible +RUN rm -f datadog/createLogPath.sh && \ + rm -f datadog/*.so && \ + rm -f datadog/loader.conf && \ + rm -f datadog/**/libddwaf.so && \ + rm -f datadog/**/Datadog.Linux.ApiWrapper.x64.so && \ + rm -f datadog/**/Datadog.Profiler.Native.so && \ + rm -f datadog/**/Datadog.Trace.MSBuild.* && \ + rm -f datadog/**/libdatadog_profiling.so \ + rm -f datadog/**/*.pdb && \ + rm -f datadog/**/*.xml && \ + rm -f datadog/dd-dotnet.sh && \ + rm -f datadog/**/dd-dotnet && \ + rm -rf datadog/net461 && \ rm -rf datadog/netstandard2.0 && \ rm -rf datadog/netcoreapp3.1 && \ - rm -rf datadog/continuousprofiler - -# HACK: rename the tracer library so the logic in datadog_wrapper keeps working -# See also https://github.com/DataDog/datadog-lambda-extension/pull/150 -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 -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 + rm -rf datadog/continuousprofiler \ + rm -rf datadog/win-* # add file with tracer version RUN echo ${TRACER_VERSION} > datadog/tracer_version.txt