Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot run ASP.NET Core app using buildkit #213

Closed
pikausp opened this issue Sep 29, 2019 · 7 comments
Closed

Cannot run ASP.NET Core app using buildkit #213

pikausp opened this issue Sep 29, 2019 · 7 comments

Comments

@pikausp
Copy link

pikausp commented Sep 29, 2019

When I attempt to run the application in docker after switching to buildkit I get an error Docker command failed with exit code 0. Building the image from shell works as expected. I tried cleaning the solution and removing all containers & images.

I removed as much as possible from the Dockerfile and now it looks like this

# syntax=docker/dockerfile:1.0.0-experimental
# ---------------------- base ----------------------
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-alpine AS base
WORKDIR /app
EXPOSE 80

This is the build log

1>------ Build started: Project: MyProject, Configuration: Debug Any CPU ------
1>MyProject -> C:\dev\repos\MyProject\server\src\MyProject\bin\Debug\netcoreapp3.0\MyProject.dll
1>docker build -f "C:\dev\repos\MyProject\server\Dockerfile" --force-rm -t myproject:dev --target base  --secret id=pat,src=C:\dev\repos\MyProject\server\pat --no-cache --label "com.microsoft.created-by=visual-studio" --label "com.microsoft.visual-studio.project-name=MyProject" "C:\dev\repos\MyProject"
1>#2 [internal] load build definition from Dockerfile
1>#2 transferring dockerfile: 265B done
1>#1 DONE 0.1s
1>#1 transferring context: 2B done
1>#1 [internal] load .dockerignore
1>
1>#3 resolve image config for docker.io/docker/dockerfile:1.0.0-experimental
1>
1>#2 DONE 0.0s
1>#3 DONE 0.5s
1>
1>#4 CACHED
1>#4 docker-image://docker.io/docker/dockerfile:1.0.0-experimental@sha256:d2d...
1>
1>#5 transferring dockerfile: 265B done
1>#5 [internal] load build definition from Dockerfile
1>#6 [internal] load .dockerignore
1>#6 transferring context: 2B done
1>#6 DONE 0.1s
1>
1>#5 DONE 0.0s
1>
1>
1>#7 DONE 0.0s
1>#8 [1/1] FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-alpine
1>#8 CACHED
1>#7 [internal] load metadata for mcr.microsoft.com/dotnet/core/aspnet:3.0-al...
1>
1>#9 exporting layers done
1>#9 writing image sha256:d3bd5c37e72d2d46ca8f211de0a00202ee99b16e4738cd90c1d1b3ffc2296c17 done
1>#9 exporting to image
1>#9 naming to docker.io/library/myproject:dev
1>#9 naming to docker.io/library/myproject:dev done
1>#9 DONE 0.0s
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: Docker command failed with exit code 0.
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #2 [internal] load build definition from Dockerfile
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #2 transferring dockerfile: 265B done
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #2 DONE 0.0s
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: 
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #1 [internal] load .dockerignore
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #1 transferring context: 2B done
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #1 DONE 0.1s
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: 
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #3 resolve image config for docker.io/docker/dockerfile:1.0.0-experimental
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #3 DONE 0.5s
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: 
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #4 docker-image://docker.io/docker/dockerfile:1.0.0-experimental@sha256:d2d...
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #4 CACHED
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: 
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #5 [internal] load build definition from Dockerfile
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #5 transferring dockerfile: 265B done
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #5 DONE 0.0s
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: 
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #6 [internal] load .dockerignore
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #6 transferring context: 2B done
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #6 DONE 0.1s
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: 
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #7 [internal] load metadata for mcr.microsoft.com/dotnet/core/aspnet:3.0-al...
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #7 DONE 0.0s
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: 
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #8 [1/1] FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-alpine
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #8 CACHED
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: 
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #9 exporting to image
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #9 exporting layers done
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #9 writing image sha256:d3bd5c37e72d2d46ca8f211de0a00202ee99b16e4738cd90c1d1b3ffc2296c17 done
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #9 naming to docker.io/library/myproject:dev
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #9 naming to docker.io/library/myproject:dev done
1>C:\dev\repos\MyProject\server\Dockerfile : error CTC1014: #9 DONE 0.0s
1>Done building project "MyProject.csproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 9 up-to-date, 0 skipped ==========

Docker desktop 2.1.0.3 (38240) (Engine v19.03.2)
VS 16.3.1

@bwateratmsft
Copy link
Contributor

It seems like BuildKit may be outputting everything to stderr instead out stdout. Our logic treats non-zero exit code as error, but also output to stderr as error.

@bwateratmsft
Copy link
Contributor

@pikausp We've implemented a fix which will be available with 16.4 Preview 3. It will require updating the referenced Microsoft.VisualStudio.Azure.Containers.Tools.Targets to 1.9.7, which will become available when 16.4 Preview 3 releases.

It is possible that older versions of VS (e.g. I tested with 16.3) will work as long as you update the above package to 1.9.7, but, you will see failures during container warmup on project load (this warmup is just an optimization and not required to work). When you F5, it should work. If you wish to not see these failures, you can disable warmup in Tools > Options > Container tools > Single project > Run containers on project open.

@pratiksanglikar
Copy link
Contributor

pratiksanglikar commented Nov 14, 2019

BuildKit is not supported on Windows hosts anymore.
See here - #1258.

@sibbl
Copy link

sibbl commented Jan 14, 2020

@bwateratmsft since you've mentioned version 1.9.7 already three months ago, may I ask whether there's any ETA when this will become available?

@NCarlsonMSFT
Copy link
Member

Sorry for the oversight, the NuGet was published, but not publicly listed. The final version for VS 16.4 is 1.9.10 which is now publicly available

@sibbl
Copy link

sibbl commented Jan 15, 2020

@NCarlsonMSFT thanks, it works like a charm! I wish there was an option to set DOCKER_BUILDKIT=1 project wise, i.e. in the launchSettings.json. Is this possible or would it be worth a new issue?

@NCarlsonMSFT
Copy link
Member

@sibbl That would be a new issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants