You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For .NET SDK containers, it is critical that we control the first run experience. There are design truths of containers that need to be appreciated:
Every run with containers is first run (modulo what happens in docker build; the point of this conversation).
Containers are intended to be fully configured, enabling an instant-on experience.
As a result, running actual first run logic is antithetical to containers. We've always run dotnet help as a sort of hack to manage first run. That is unintuitive. We know that lots of people clone our Dockerfiles. Big companies, other OSS projects, and other clouds tell us that they do this. They've also expressed their appreciation for the careful design and thoughtfulness we put into the Dockerfiles so that they can easily consume them. This issue is the biggest remaining challenge we have.
Half of the ENVs we set are used only at startup. That's unfortunate. With the proposed model, we'd get the following benefits:
Our Dockerfiles would be shorter and simpler.
First run would be explicit.
The locality of first run concerns would be vastly improved, to one line.
The process state would be improved (fewer ENVs set). This isn't a perf issue, but simplifying our product state and making it easier to understand. I could see the SDK turning these args into ENVs as an implementation detail. That would be OK.
The text was updated successfully, but these errors were encountered:
NOLOGO is that, and we already had a conversation about that exact topic. NOLOGO needs to be the "no extra console output" control. If you want to create a new one that does less than that, that works.
For .NET SDK containers, it is critical that we control the first run experience. There are design truths of containers that need to be appreciated:
docker build
; the point of this conversation).As a result, running actual first run logic is antithetical to containers. We've always run
dotnet help
as a sort of hack to manage first run. That is unintuitive. We know that lots of people clone our Dockerfiles. Big companies, other OSS projects, and other clouds tell us that they do this. They've also expressed their appreciation for the careful design and thoughtfulness we put into the Dockerfiles so that they can easily consume them. This issue is the biggest remaining challenge we have.We recently made changes to our Dockerfiles to make our first run handling more explicit/intentional. Unfortunately, this is making our Dockerfiles more verbose.
And, we're still relying on
dotnet help
.We'd like a new command -- call it
dotnet init
-- that takes a set of argument that enable us to describe our intent.Half of the ENVs we set are used only at startup. That's unfortunate. With the proposed model, we'd get the following benefits:
The text was updated successfully, but these errors were encountered: