Differences between Azure Functions Docker images on Docker Hub?

Pitawat 341 Reputation points
2022-02-11T10:42:46.2+00:00

My team is upgrading Azure Functions runtime from 3.x to 4.x to support .NET 6. We noticed that there are 4 Docker image tags available. What are the differences between these tags?

Link to Docker Hub: https://hub.docker.com/_/microsoft-azure-functions-dotnet?tab=description

rzlDVb.png

Bonus question: what is .NET isolated images? (https://hub.docker.com/_/microsoft-azure-functions-dotnet-isolated)

Thanks.

Azure Functions
Azure Functions
An Azure service that provides an event-driven serverless compute platform.
4,497 questions
{count} votes

Accepted answer
  1. MughundhanRaveendran-MSFT 12,446 Reputation points
    2022-02-23T04:50:56.513+00:00

    @Pitawat ,

    Thanks for reaching out to Q&A.

    The following are the differences between the available tags. Images and their uses are also listed below

    4 – This is the “standard” image for dotnet support. This includes the full package of dependencies. But, does not include ssh configuration that makes connecting to a production application over kudu possible. This image is a good image to build off of when custom dependencies are necessary. Here is the definition file of that image.

    https://github.com/Azure/azure-functions-docker/blob/dev/host/4/bullseye/amd64/dotnet/dotnet-inproc/dotnet.Dockerfile

    4-slim – In most cases, this is the smallest available image for a specific language. In general, it cuts out unnecessary but commonly used dependencies. For dotnet, we do not have any unused dependencies so this slim image is equivalent to the above image ‘4’. This image is not preferred in any cases.

    https://github.com/Azure/azure-functions-docker/blob/dev/host/4/bullseye/amd64/dotnet/dotnet-inproc/dotnet-slim.Dockerfile

    4-appservice – By default, this is the image that most customers use. It includes all necessary dependencies, the Functions Host, and tools for ssh’ing into an application using Kudu. In most cases, unless a customer has to download specific dependencies for their app this is the preferred image. A definition can be found here attached to the latest release under <version>-appservice

    https://github.com/Azure/azure-functions-docker/releases/tag/4.1.3

    4-dotnet6-appservice – Equal to above 4-appservice image. For other languages, the customer can select a specific runtime version. For example if the customer wanted to use java. The customer could select a specific runtime version such as java:4-java8-appservice or they could go for the default image (java:4-appservice) which is java11. However, for dotnet there are no other versions available. So this image is equivalent to the above 4-appservice image.

    I hope this helps!

    Please 'Accept as answer' and ‘Upvote’ if it helped so that it can help others in the community looking for help on similar topics.

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful