FROM ortools/cmake:alpine_swig AS env RUN apk add --no-cache wget icu-libs libintl # .NET install # see: https://dotnet.microsoft.com/download/dotnet-core/3.1 RUN dotnet_sdk_version=3.1.404 \ && wget -O dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \ && dotnet_sha512='c6e73e88c69fa2c81eb572a64206fa6e94cb376230a05f14028c35aab202975c857973f9b5fac849c60d22f37563d8d53689c2605571e3b922bda2489e12346d' \ && echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \ && mkdir -p /usr/share/dotnet \ && tar -C /usr/share/dotnet -oxzf dotnet.tar.gz \ && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \ && rm dotnet.tar.gz # Trigger first run experience by running arbitrary cmd RUN dotnet --info FROM env AS devel WORKDIR /home/project COPY . . FROM devel AS build RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF RUN cmake --build build --target all -v RUN cmake --build build --target install FROM build AS test RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test FROM env AS install_env WORKDIR /home/sample COPY --from=build /home/project/build/dotnet/packages/*.nupkg ./ FROM install_env AS install_devel COPY cmake/samples/dotnet . FROM install_devel AS install_build RUN dotnet build FROM install_build AS install_test RUN dotnet test