>source

이상한 이유로 현재 작업 디렉토리는 /입니다. dockerfile의 현재 디렉토리 여야하지만 그렇지 않습니다. 전에 본 사람 있어요? PowerShell과 Cmder를 모두 사용하고 동일한 결과를 얻는 창에 있습니다.

Dockerfile :

FROM mcr.microsoft.com/dotnet/core/sdk:2.2
#WORKDIR /bin
RUN pwd
RUN ls -la
#COPY . app/
RUN dotnet --version
ENTRYPOINT ["dotnet", "app/simple-dotnet-api.dll"]

출력 :

λ docker build --no-cache -t simpledotnetapi .
Sending build context to Docker daemon  252.4kB
Step 1/6 : FROM mcr.microsoft.com/dotnet/core/sdk:2.2
 ---> 08663b8eaa01
Step 2/6 : RUN ls -la
 ---> Running in ac2e849a757e
total 72
drwxr-xr-x   1 root root 4096 Jun 13 16:17 .
drwxr-xr-x   1 root root 4096 Jun 13 16:17 ..
-rwxr-xr-x   1 root root    0 Jun 13 16:17 .dockerenv
drwxr-xr-x   1 root root 4096 Jun 11 00:30 bin
drwxr-xr-x   2 root root 4096 Mar 28 09:12 boot
drwxr-xr-x   5 root root  340 Jun 13 16:17 dev
drwxr-xr-x   1 root root 4096 Jun 13 16:17 etc
drwxr-xr-x   2 root root 4096 Mar 28 09:12 home
drwxr-xr-x   1 root root 4096 Jun 10 00:00 lib
drwxr-xr-x   2 root root 4096 Jun 10 00:00 lib64
drwxr-xr-x   2 root root 4096 Jun 10 00:00 media
drwxr-xr-x   2 root root 4096 Jun 10 00:00 mnt
drwxr-xr-x   2 root root 4096 Jun 10 00:00 opt
dr-xr-xr-x 144 root root    0 Jun 13 16:17 proc
drwx------   1 root root 4096 Jun 11 08:07 root
drwxr-xr-x   3 root root 4096 Jun 10 00:00 run
drwxr-xr-x   1 root root 4096 Jun 11 00:30 sbin
drwxr-xr-x   2 root root 4096 Jun 10 00:00 srv
dr-xr-xr-x  13 root root    0 Jun 13 15:46 sys
drwxrwxrwt   1 root root 4096 Jun 11 00:30 tmp
drwxr-xr-x   1 root root 4096 Jun 10 00:00 usr
drwxr-xr-x   1 root root 4096 Jun 10 00:00 var
Removing intermediate container ac2e849a757e
 ---> 50062f08e279
Step 3/6 : RUN pwd
 ---> Running in f79599959874
/
Removing intermediate container f79599959874
 ---> 8af3de2e5e58
Step 4/6 : COPY . app/
 ---> 32d77a7cf452
Step 5/6 : RUN dotnet --version
 ---> Running in f1f83285eff2
2.2.300
Removing intermediate container f1f83285eff2
 ---> f0bb4891b002
Step 6/6 : ENTRYPOINT ["dotnet", "app/simple-dotnet-api.dll"]
 ---> Running in 3978dee3fdcf
Removing intermediate container 3978dee3fdcf
 ---> af95f20afbbe
Successfully built af95f20afbbe
Successfully tagged simpledotnetapi:latest

  • 답변 # 1

    RUN pwd 사용  Dockerfile 내부는 Dockerfile이있는 디렉토리가 아닌 이미지의 현재 작업 디렉토리를 인쇄합니다.

    docker build 를 실행할 때  빌드 컨텍스트를 전달합니다. docker build --no-cache -t simpledotnetapi . 를 사용하는 경우   .  (현재 디렉토리)는 빌드의 컨텍스트입니다. 와이즈 비즈   COPY /source /destination 를 찾을 것입니다  빌드 컨텍스트의 루트에서 source 에 복사하십시오.  컨테이너 내부.

    유비를 사용하여 /destination 실행  원격 쉘을 사용하여 원격 시스템에서 일련의 명령을 실행하는 것과 비슷하지만 공유 디렉토리가 빌드 컨텍스트입니다.

    docker build

관련 자료

  • 이전 auditnet - 다른 데이터 제공 업체에 저장하는 프로세스
  • 다음 html - 포커스 입력에서 검색 btn을 어떻게 변경합니까?