Let’s assume:. that you’re building an ASP.NET Core web application.
Docker rmi IMAGE_ID. You can also just remove all unused images: docker image prune--all Get back your disk space. If you are on a Mac the tip above is like a band aid for a broken leg. Eventually you’ll see the disk space issue again. This is because there is a bug on docker for mac that causes the Docker.qcow2 file to never shrink. Aug 7, 2017 - Start Docker Fatal Error Received Docker Ask to reset to factory defaults and don't start. Output of the diagnostics from 'Diagnose & Feedback'.
you want to deploy and debug this in a Linux container. some of your team use Visual Studio 2017+ on Windows.
others want to use Visual Studio Code on Mac. For mac yosemite 10.10 full new version dl honey for chrome from. the entire application is more than just a single web app in a container. You use multiple containers in a composed environment. This was the situation for a team I worked with recently. People using Macs could do front end work, but struggled with back end changes as they couldn’t debug the site in the container if there were problems.
Unable To Start Docker For Mac Windows 10
This post will explain how we got them working and made them happier. Setting the scene First things first, how do we use docker in our development process? Docker Compose We use docker-compose to bring up our environment. Our production environment is defined in a docker-compose.yml file and we have a docker-compose.override.yml file for use when developing locally to tweak the environment for non-prod use.
Multi-stage Dockerfile The ASP.NET Core web container is build with a multi-stage Dockerfile. We used the default dockerfile created by the Visual Studio Tools for Docker extension in VS2017 and then tweaked it from there. Debugging from Visual Studio 2017 Windows based team members using Visual Studio 2017 typically have a Visual Studio docker project (.dcproj) in the solution. They can set this as the startup project, hit F5 and get debugging from there. Under the hood Visual Studio generates an extra docker-compose file named docker-compose.vs.debug.g.yml and then spins up the containers and starts the site. How Visual Studio starts the process and attaches the debugger is less clear as the tooling doesn’t log anything, however the developer experience is pretty simple. Debugging from VSCode It’s much more manual with VSCode.
Mac Start Docker Daemon
We adjusted the web app’s Dockerfile and added a new target that builds an image we can use for debugging. We then created a new docker-compose override file that adds features to the container needed for debugging from VSCode. This override file is based on the generated compose file created by the VS2017 tooling. We also added the vsdbg binaries to our git repository so that all developers have the binaries in a well known path. If you’ve not heard of it, vsdbg is the cross platform debugger that uses a command line to interact with the target application. The explains it a little further. Developers then manually start the web site in the container using docker exec and attach the debugger when they’re ready.
The Development Experience with VSCode The Dockerfile and other artefacts are shown later in this post, but before looking at them, we should first see the steps we expect people using VSCode to take. Pre-Requisite Step: We add a variable called DOTNETPATH to docker’s.env file. This needs to be configured by each developer based on their platform. As it’s a team environment we also ask people to tell git to ignore changes to the file by running git update-index -assume-unchanged.env. To build, run and debug the app on their local machine, developers do the following: (Re)build the container images. Docker-compose exec web dotnet -additionalProbingPath /root/.nuget/packages -additionalProbingPath /root/.nuget/fallbackpackages bin/Debug/netcoreapp2.0/MySite.Web.dll P.S.
We recommend you create a shell script to make this simpler to use on a regular basis. Start debugging! In VSCode go to the debug hub and start the “Attach To MySite.Web (Docker)” debug configuration. At this point developers can now debug the app as they normally would. While it might seem a little involved, it becomes very routine once it been done a few times 🙂 The files that make it all happen docker-compose.yml First up, the main docker-compose.yml file.
It looks something like this. #Target for use with VSCode - debug build FROM microsoft/aspnetcore-build:2.0 AS debug WORKDIR /app EXPOSE 7000 It wasn’t all plain sailing I originally had trouble getting this working as I was using the microsoft/aspnetcore:2.0 base image (which is a runtime image), however this image is so slimmed down that Linux shell command ps has been removed. Without this command available, the OmniSharp debugger cannot iterate the running process ids in the container and the attach fails. On Mac, people need to make the location of the dotnet packages folder (/usr/local/share/dotnet) available in their Docker for Mac preferences so that it can be mounted in the container. We’ve been unable to configure the launch command in VSCode successfully. Attempting to launch the app directly into the container will call dotnet run with the name of the program from the config settings. What we couldn’t manage to do was get the launch command to respect the -additionalProbingPath parameters, specified as either args or environment ( env) options.
We tried all sorts of variations of the config, as shown here, without success.