Cake just released 0.30 which includes a package for a dotnet global tool.
I’ve been waiting for this for a long time as I’ve always had “personal” issues with the bootstrapper script. As I make it a good practice to Dockerize all the things, I can simplify my dotnet Dockerfiles a bit.
Here’s the new Dockerfile I have for the sample Conduit ASP.NET Core app that I maintain for fun:
#build container FROM microsoft/dotnet:2.1.401-sdk as build WORKDIR /build COPY . . RUN dotnet tool install -g Cake.Tool ENV PATH="${PATH}:/root/.dotnet/tools" RUN dotnet cake build.cake #runtime container FROM microsoft/dotnet:2.1.3-runtime COPY --from=build /build/publish /app WORKDIR /app EXPOSE 5000 ENTRYPOINT ["dotnet", "Conduit.dll"]
The one tricky bit is that the current dotnet base images don’t have the tools dir on the PATH as tracked here: https://github.com/dotnet/dotnet-docker/issues/520
The fix is just adding the single line: ENV PATH="${PATH}:/root/.dotnet/tools"
Now I can delete build shell/powershell scripts all day long!