도커 - 컨텍스트를 준비할 수 없음: 도커 파일 경로의 심볼 링크를 평가할 수 없음: GetFileAttributes전
나는 방금 윈도우 10 64비트용 도커 툴박스를 다운로드했습니다.저는 튜토리얼을 받고 있습니다.도커 파일을 사용하여 이미지를 빌드할 때 다음 오류가 발생합니다.
단계:
- Docker Quickstart 터미널을 시작했습니다.
- 만든 후에 도커를 테스트합니다.
- "Build your own image" 웹 링크에 설명된 대로 Docker 파일 준비
- 다음 명령을 실행했습니다.
docker build -t docker-whale .
Error: $ docker build -t docker-whale .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\Users\Villanueva\Test\testdocker\Dockerfile: The system cannot find the file specified.
BTW: https://github.com/docker/docker/issues/14339 에 언급된 몇 가지 옵션을 사용해 보았습니다.
docker info
출력:
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 2
Server Version: 1.10.1
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 20
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.1.17-boot2docker
Operating System: Boot2Docker 1.10.1 (TCL 6.4.1); master : b03e158 - Thu Feb 11 22:34:01 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 996.2 MiB
Name: default
ID: C7DS:CIAJ:FTSN:PCGD:ZW25:MQNG:H3HK:KRJL:G6FC:VPRW:SEWW:KP7B
Debug mode (server): true
File Descriptors: 32
Goroutines: 44
System Time: 2016-02-19T17:37:37.706076803Z
EventsListeners: 0
Init SHA1:
Init Path: /usr/local/bin/docker
Docker Root Dir: /mnt/sda1/var/lib/docker
Labels:
provider=virtualbox
다음 명령을 실행하는 동안
docker build -t docker-whale .
Docker 파일이 현재 작업 디렉토리에 있는지 확인합니다.
오류 메시지가 오해의 소지가 있습니다.
그 문제는 상징적인 링크와는 전혀 관련이 없습니다.일반적으로 문제는 Docker가 빌드를 설명하는 Docker 파일을 찾을 수 없다는 것입니다.
일반적인 이유는 다음과 같습니다.
- 도커 파일의 이름이 잘못되었습니다.라고 해야 합니다.
Dockerfile
예를 들어, 그것이 불려진다면,dockerfile
,.Dockerfile
,Dockerfile.txt
그렇지 않으면 찾을 수 없습니다. - 도커 파일이 컨텍스트에 없습니다.라고 한다면
docker build contextdir
도커 파일은 다음 위치에 있어야 합니다.contextdir/Dockerfile
만약 당신이 그것을 가지고 있다면, 말해주세요../Dockerfile
대신, 그것은 발견되지 않을 것입니다. - 도커 파일이 전혀 없습니다.바보같이 들립니까?좋은 도커 파일을 작성한 후 위의 오류 메시지를 GitLab CI에서 받았는데 체크인하는 것을 잊어버렸습니다.바보야?물론이죠. 가능성이 없나요?아니요.
Windows 8(윈도우 8)에서 작업하는 경우 Docker 도구 상자를 사용합니다.
도커 파일이 텍스트 파일이므로 mydockerbuild 디렉토리에서 다음 명령을 실행합니다.
docker build -t docker-whale -f ./Dockerfile.txt .
파일 이름은 다음과 같아야 합니다.Dockerfile
그리고 아닌.Dockerfile
파일에는 확장자가 없어야 합니다.
- Docker 파일이 있는 디렉토리로 이동했는지 확인합니다.
- Docker 파일이 확장자가 없는지 확인합니다.즉, 도커 파일이 아닙니다.txt, Dockerfile.rtf 또는 기타.
- DockerFile, DockerFile 또는 기타 이름이 아닌 DockerFile이라는 이름을 지정했는지 확인합니다.
저는 Docker 파일 대신에 파일 Docker 파일의 이름을 붙였고, 그것을 변경하자 "Docker 파일"이 처리되기 시작했습니다.
Docker 파일에서 확장자 .txt를 제거하고 명령을 실행합니다.
docker build -t image-name
그것은 확실히 효과가 있을 것입니다.
이미지를 만들기 위해 올바른 명령을 사용했지만 (MacBook에서) 이 오류가 발생했습니다.
docker build -t testimg .
나중에 저는 경로가 문제라는 것을 알았습니다.도커 파일이 포함된 올바른 경로로 이동하기만 하면 됩니다.현재 작업 디렉토리를 다시 확인하십시오.당황할 것 없어요!
이 명령은 나에게 효과가 있었습니다.
docker build -t docker-whale -f Dockerfile.txt .
그것은 메모장이 도커 파일의 끝에 ".txt"를 추가하기 때문입니다.
Visual Studio 2017 Docker Support 도구로 Docker File을 생성했지만 동일한 오류가 발생했습니다.
잠시 후, 저는 제가 도커 파일이 들어 있는 올바른 디렉토리에 있지 않다는 것을 깨달았습니다.(~\source\repos\DockerWebApplication\)
올바른 파일에 CD를 넣었습니다.(~/source/repos/DockerWebApplication/DockerWebApplication)
프로젝트 내부에 있었고 도커 이미지를 성공적으로 만들었습니다.
WSL에서 경로 변환에 문제가 있는 것 같습니다.Ubuntu에서 Docker 파일의 위치(내가 Docker를 실행하고 있으며 Docker 파일이 있는 곳)는 "/home/sxw455/App1"이지만 다음 명령 중 어느 것도 작동하지 않았습니다.
$ pwd
/home/sxw455/App1
$ ll
total 4
drwxrwxrwx 0 sxw455 sxw455 4096 Dec 11 19:28 ./
drwxr-xr-x 0 sxw455 sxw455 4096 Dec 11 19:25 ../
-rwxrwxrwx 1 sxw455 sxw455 531 Dec 11 19:26 Dockerfile*
-rwxrwxrwx 1 sxw455 sxw455 666 Dec 11 19:28 app.py*
-rwxrwxrwx 1 sxw455 sxw455 12 Dec 11 19:27 requirements.txt*
$ docker build -t friendlyhello .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\Windows\System32\Dockerfile: The system cannot find the file specified.
$ docker build -t friendlyhello "/home/sxw455/App1"
unable to prepare context: path "/home/sxw455/App1" not found
그러나 Windows에서 실제 경로는 다음과 같습니다.
C:\Users\sxw455\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\sxw455\App1
그래서 저는 이것을 해야만 했습니다(바시에서 운영했지만).
$ docker build -t friendlyhello
"C:\Users\sxw455\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\sxw455\App1"
Sending build context to Docker daemon 5.12kB
Step 1/7 : FROM python:2.7-slim
---> 0dc3d8d47241
Step 2/7 : WORKDIR /app
---> Using cache
---> f739aa02ce04
Step 3/7 : COPY . /app
---> Using cache
---> 88686c524ae9
Step 4/7 : RUN pip install --trusted-host pypi.python.org -r requirements.txt
---> Using cache
---> b95f02b14f78
Step 5/7 : EXPOSE 80
---> Using cache
---> 0924dbc3f695
Step 6/7 : ENV NAME World
---> Using cache
---> 85c145785b87
Step 7/7 : CMD ["python", "app.py"]
---> Using cache
---> c2e43b7f0d4a
Successfully built c2e43b7f0d4a
Successfully tagged friendlyhello:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
초기 설치 과정에서 환경 변수와 비슷한 문제가 있었고, WSL이 systemctl을 완전히 구현하지 않기 때문에 Ubuntu Docker CE를 설치하는 대신 Windows Docker CE를 설치하고 환경 변수를 해킹하라는 몇 가지 조언을 따랐습니다.Windows Docker CE 설치가 완료되고 환경 변수가 설정되면 WSL/Ubuntu에서 Docker가 제대로 작동합니다.
도커 파일을 만드는 두 가지 방법:
할 수 . 이 빌할파이지않빌지결수다있니습정록함할로정도드하야여드(파일 은 법일이름을경하지만고해정정지이파을로름일하으방)Dockerfile
예 확자가추예지않음되가장예않(음:▁with▁no지)docker build -t docker-whale:tag path/to/Dockerfile
또는
다음을 사용하여 파일을 지정할 수 있습니다.-f
확장자에서)를 사용하든..txt
,.dockerfile
,.Dockerfile
합니다. 예를 들어, 등기로결니다정합사용하다▁etc.docker build -t docker-whale:tag /path/to/file -f docker-whale.dockerfile
.
오류는 다음을 의미합니다.docker build
는 를사하있다니를 .PATH | URL
잘못 입력되었거나 또는 그것이Dockerfile
현재 디렉터리에서 찾을 수 없습니다.또한 통합 터미널에서 명령을 실행할 때(예:bash
IDE 또는 텍스트 편집기 내부)에서 이 작업을 수행할 관리자 권한이 있습니다.확인할 수 있는 경우가 가장 좋습니다.PATH
당신의 터미널에서pwd
단위:)()bash shell
또는dir
▁a를cli
이미지를 빌드할 정확한 경로를 복사합니다.
docker build C:\windows\your_amazing_directory
docker build --help
또한 잘못된 형식의 명령이나 잘못된 명령의 경우 사용할 수 있는 옵션도 표시됩니다.
Windows 10에서는 마침표가 첫 번째 매개 변수입니다.
docker build . -t docker-whale
하세요!DOCKERfile
. 에 내 . 이 가 응용프로있루습. src에내것의 입니다. Docker가 경로를 찾지 못했기 때문에 이 오류가 발생했습니다.DOCKERfile
를 설치하는 입니다.docker.io
에 docker
나를 도왔습니다
예.
apt install docker.io
원래 PowerShell에서 Docker 파일을 생성했는데 파일에 PS 파일 유형으로 표시된 확장자가 보이지 않았습니다.파일 이름(도커 파일)에 확장자가 없는 "모든 유형(.)" 파일 형식을 선택해야 합니다.이미지 빌드 명령이 성공적으로 완료되었습니다.도커 파일의 유형이 "파일"인지 확인하십시오.
문제는 파일 이름이 DockerFile 또는 DockerFile이 아니라 DockerFile이어야 한다는 것입니다.D 대문자 뒤에 Oker 파일을 소문자로 입력해야 합니다.부디 참고하세요.
내 경우(Windows 10에서 실행):
- 을 변경합니다.
myDockerFile.Dockerfile
Dockerfile
(파일 확장자 없음).
그런 다음 폴더 외부에서 다음 명령을 실행합니다.
docker build .\Docker-LocalNifi\
이것은 저와 직장 동료들에게 효과가 있습니다.
명령을 실행해야 합니다.
docker build . -t docker-whale
도커 파일이 있는 디렉터리에서
도커 파일을 빌드하려면 자동화된 내용을 도커 파일에 저장합니다.파일 명령을 여는 동안 다음과 같은 이유로 도커 파일이 아닙니다.
notepad Dockerfile
(텍스트 파일이 작성되어 파일을 빌드할 수 없습니다.)
파일을 빌드하려면 다음을 실행합니다.
notepad Dockerfile
이제 실행:
docker build -t docker-whale .
도커 파일의 현재 디렉터리에 있는지 확인합니다.
은, 이 " 가중것파이이름일은한요장이이름▁sure▁your▁name▁most파▁make▁is일"인지 확인하는 것입니다.Dockerfile
다른 이름을 사용하면 작동하지 않습니다(적어도 저는 그렇지 않았습니다).
Docker 파일을 합니다..
.,,,,,,,,,,,,,,,,,,,
docker build -t Myubuntu1:v1 .
또는 절대 경로를 사용합니다. 즉,
docker build -t Myubuntu1:v1 /Users/<username>/Desktop/Docker
파일 이름 "Dockerfile"이 확장자와 함께 저장되지 않았는지 확인합니다.확장자 없이 파일을 만들기만 하면 됩니다.
또한 Docker 파일이 Docker 이미지를 작성하려는 디렉터리에 있는지 확인합니다.
환경에 Docker 파일이 여러 개 있는 경우 Docker 파일만으로는 요구 사항을 충족할 수 없습니다.
docker build -t ihub -f Dockerfile.ihub .
그래서 사용합니다.file
(-f 인수) 명령을 사용하여 도커 파일(Dockerfile.ihub)을 지정합니다.
제가 작업 디렉토리에 잘못 작성하여 위와 같은 오류가 발생했습니다.build
수정 사항은 파일에서 확장자를 제거하는 것이었습니다.
파일 이름은 확장자 없이만 사용해야 합니다.
실행docker build -t getting-started .
프로젝트 디렉토리에 Docker 파일이 있고 없는지 확인합니다..txt
例의 있는 탭하여 .합니다.Windows(윈도우)에 있는 경우 파일 탐색기의 보기 탭 아래에 있는 '파일 이름 확장명'을 확인하여 .txt가 있는지 여부를 표시하고 전자가 참이면 제거합니다.행운을 빌어요.
두 번째 드라이브를 NTFS 폴더에 '마운트 볼륨'으로 마운트한 경우 이 문제가 발생할 수 있습니다.
마운트된 볼륨 외부의 드라이브 위치로 파일을 이동합니다.
도커 build -t 도커-고래 -f 도커 파일.
제가 작업하는 경로가 연결 지점 디렉토리 아래에 있을 때 Windows에서 이 정보를 얻었습니다.그래서 저의 해결책은 그 길 아래에서 일하지 않는 것이었습니다.
언급URL : https://stackoverflow.com/questions/35511604/docker-unable-to-prepare-context-unable-to-evaluate-symlinks-in-dockerfile-pa
'programing' 카테고리의 다른 글
어레이, 해시 테이블 및 사전을 생성하시겠습니까? (0) | 2023.07.29 |
---|---|
Oracle: 자정 전 현재 날짜(오늘)를 선택하는 방법은 무엇입니까? (0) | 2023.07.29 |
판다 데이터 프레임의 열 순서 설정 (0) | 2023.07.29 |
Angular 4 오류: HttpClient에 대한 공급자 없음 (0) | 2023.07.29 |
반응형 레이아웃에 요소를 숨깁니까? (0) | 2023.07.29 |