- Usecase : у меня есть маленькая точка. net core sdk 3.0 приложение, которое должно работать внутри контейнера.
- Usecase : я буду также смонтируйте папку контейнера в windows файловую систему
Dockerfile для образа выглядит так:
FROM mcr.microsoft.com/dotnet/core/sdk:3.0
#SET WORKING DIRECTORY
WORKDIR /app
#COPY ALL AND RESTORE
COPY . .
RUN dotnet restore "Modeling\\ModellingMicroServices.sln"
#INSTALL SOFTWARE
SHELL ["cmd", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN Start-Process 'software\\graphviz-2.38.msi' '/qn' -PassThru | Wait-Process;
#CMD SDK3.0
CMD ["Modeling\\MicroServiceModelCompilerCore\\bin\\Debug\\netcoreapp3.0\\MicroServiceModelCompilerCore.exe", "watcher", "Modeling\\MicroServiceModelCompilerCore\\bin\\Debug\\netcoreapp3.0"]
Разделен U1 и U2 отлично работает.
U1:
docker build -t mms .
docker run --name mms-c mms
U2:
docker build -t mms .
docker run -d --name mms-c --mount type=bind,source="C:/Users/user/Desktop/ModellingMicroServices/mount",target="C:/app/Modeling/MicroServiceModelCompilerCore/bin/Debug/netcoreapp3.0" mms
Проблема:
U2 работает только тогда, когда я не вызываю команду CMD
в конце файла Docker. Если я не делаю этого, команда docker run -d --name mms-c --mount
возвращает:
9dd272dec48731982bebffa884a1a6eb81e211763b390eeb18f411781521d5a7
docker: Error response from daemon: container 9dd272dec48731982bebffa884a1a6eb81e211763b390eeb18f411781521d5a7 encountered an error during CreateProcess: failure in a Windows system call: The system can not find the stated file. (0x2)
[Event Detail: Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail: Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail: onecore\vm\compute\management\orchestration\vmhostedcontainer\processmanagement.cpp(173)\vmcomputeagent.exe!00007FF6157B9D2B: (caller: 00007FF61576E13A) Exception(4) tid(3a0) 80070002 The system cannot find the file specified.
CallContext:[\Bridge_ProcessMessage\VmHostedContainer_ExecuteProcess]