Description
Describe the Bug
Our local docker-compose
development stack consists in a set of containers running our ASP.NET Core APIs where we mount our code and run it with dotnet watch run
.
We upgraded our services to .NET 5 yesterday, and therefore, our base images to mcr.microsoft.com/dotnet/sdk:5.0
and noticed a bug: files aren't reloaded when changed on the host.
A similar issue seems to have been reported here around a month ago.
Steps to Reproduce
Environment:
I'm running Docker on a Linux host but colleagues had the same issue on OSX. I have no information about docker on Windows or in the WSL (but I suspect it impacts at least docker running in the WSL).
Requirements:
- bash, docker and the .NET 5 CLI
- Create a new simple "Hello world" webapp
mkdir /tmp/test && cd /tmp/test
dotnet new web
- Run it with
dotnet watch run
and the code mounted in a container
docker run -it --rm --workdir /app -v ${PWD}/:/app mcr.microsoft.com/dotnet/sdk:5.0 dotnet watch run
You'll notice that when opening, altering and saving the ./Startup.cs
file, the service isn't reloaded.
Other Information
The issue doesn't occur on the Ubuntu Focal image (5.0-focal
). Neither does it on the alpine
-based image but for some unknown reason, (re)build times are significantly slower on Alpine 🤔 .
If that can help, I had the same issue when building a custom .NET Core SDK image with the ./dotnet-install.sh
scripts on debian:buster-slim
, debian:slim
and debian:bullseye
, but not when basing the same custom image off ubuntu:focal
. Oh and one last thing, it used to work well with the 3.1
image. Maybe a missing dependency in the base debian
images ?
We just switched our local development environment to the official focal image, which completely solved our issue (so we basically don't care if and when this issue gets fixed 👼 ).
Since the 5.0
(the "main" image tag line) image is impacted, I thought this bug was worth reporting though.
Output of docker version
Client:
Version: 19.03.13-ce
API version: 1.40
Go version: go1.15.2
Git commit: 4484c46d9d
Built: Sat Sep 26 12:04:46 2020
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 19.03.13-ce
API version: 1.40 (minimum version 1.12)
Go version: go1.15.2
Git commit: 4484c46d9d
Built: Sat Sep 26 12:03:35 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.4.1.m
GitCommit: c623d1b36f09f8ef6536a057bd658b3aa8632828.m
runc:
Version: 1.0.0-rc92
GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
docker-init:
Version: 0.18.0
GitCommit: fec3683
Output of docker info
Client:
Debug Mode: false
Server:
Containers: 58
Running: 19
Paused: 0
Stopped: 39
Images: 331
Server Version: 19.03.13-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: c623d1b36f09f8ef6536a057bd658b3aa8632828.m
runc version: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 5.9.6-arch1-1
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 16
Total Memory: 15.55GiB
Name: garland
ID: HIY6:PX3H:AZLZ:JIGM:EOGA:XI26:WGLU:4ZD4:WZEZ:RPAX:QPRF:KMAH
Docker Root Dir: /var/lib/docker
Debug Mode: false
Username: elafarge
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false