Docker gets error "failed to compute cache key: not found" - runs fine in Visual Studio
Docker gets error "failed to compute cache key: not found" - runs fine in Visual Studio
Docker gets error "failed to compute cache key: not found" - runs fine in Visual Studio
Re: Docker gets error "failed to compute cache key: not found" - runs fine in Visual Studio
The way Visual Studio does it is a little bit odd.
Instead of launching `docker build` in the folder with the Dockerfile, it launches in the parent folder and specifies the Dockerfile with the `-f` option.
I was using the demo project (trying to create a minimal solution for another question) and struck the same situation.
Setup for my demo project is
```
\WorkerService2 ("solution" folder)
+- WorkerService2.sln
+- WorkserService2 ("project" folder)
+- DockerFile
+- WorkerService2.csproj
+- ... other program files
```
So I would **expect** to go
```
cd \Workerservice2\WorkerService2
docker build .
```
But I get your error message.
```
=> ERROR [build 3/7] COPY [WorkerService2/WorkerService2.csproj, WorkerService2/] 0.0s
------
> [build 3/7] COPY [WorkerService2/WorkerService2.csproj, WorkerService2/]:
------
failed to compute cache key: "/WorkerService2/WorkerService2.csproj" not found: not found
```
Instead, go to the parent directory, with the `.sln` file and use the docker `-f` option to specify the Dockerfile to use in the subfolder:
```
cd \Workerservice2
docker build -f WorkerService2\Dockerfile --force-rm -t worker2/try7 .
docker run -it worker2/try7
```
Note the final dot on the `docker build` command.
For docker the final part of the command is the location of the files that Docker will work with. *Usually* this is the folder with the Dockerfile in, but that's what's different about how VS does it. In this case the dockerfile is specified with the `-f`. Any paths (such as with the `COPY` instruction in the dockerfile) are relative to the location specified. The `.` means "current directory", which in my example is `\WorkerService2`.
I got to this stage by inspecting the output of the build process, with verbosity set to Detailed.
If you choose Tools / Options / Projects and Solutions / Bu
*(Réponse tronquée)*
Instead of launching `docker build` in the folder with the Dockerfile, it launches in the parent folder and specifies the Dockerfile with the `-f` option.
I was using the demo project (trying to create a minimal solution for another question) and struck the same situation.
Setup for my demo project is
```
\WorkerService2 ("solution" folder)
+- WorkerService2.sln
+- WorkserService2 ("project" folder)
+- DockerFile
+- WorkerService2.csproj
+- ... other program files
```
So I would **expect** to go
```
cd \Workerservice2\WorkerService2
docker build .
```
But I get your error message.
```
=> ERROR [build 3/7] COPY [WorkerService2/WorkerService2.csproj, WorkerService2/] 0.0s
------
> [build 3/7] COPY [WorkerService2/WorkerService2.csproj, WorkerService2/]:
------
failed to compute cache key: "/WorkerService2/WorkerService2.csproj" not found: not found
```
Instead, go to the parent directory, with the `.sln` file and use the docker `-f` option to specify the Dockerfile to use in the subfolder:
```
cd \Workerservice2
docker build -f WorkerService2\Dockerfile --force-rm -t worker2/try7 .
docker run -it worker2/try7
```
Note the final dot on the `docker build` command.
For docker the final part of the command is the location of the files that Docker will work with. *Usually* this is the folder with the Dockerfile in, but that's what's different about how VS does it. In this case the dockerfile is specified with the `-f`. Any paths (such as with the `COPY` instruction in the dockerfile) are relative to the location specified. The `.` means "current directory", which in my example is `\WorkerService2`.
I got to this stage by inspecting the output of the build process, with verbosity set to Detailed.
If you choose Tools / Options / Projects and Solutions / Bu
*(Réponse tronquée)*