นักเทียบท่า: ไม่สามารถเตรียมบริบท: ไม่สามารถประเมิน symlinks ในเส้นทาง Dockerfile: GetFileAttributesEx


190

ฉันเพิ่งดาวน์โหลด Docker Toolbox สำหรับ Windows 10 64 บิตวันนี้ ฉันจะผ่านการกวดวิชา ฉันรับข้อผิดพลาดต่อไปนี้เมื่อพยายามสร้างภาพโดยใช้ Dockerfile

ขั้นตอน:

  • เปิดตัวเทอร์มินัล Docker Quickstart
  • testdocker หลังจากสร้างมัน
  • จัดทำ Dockerfile ตามเอกสารในเว็บลิงค์ "สร้างภาพของคุณเอง"
  • วิ่งคำสั่งด้านล่าง

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

4
อัปเดต: นักเทียบท่าบิลด์-t XXX - ไฟล์ ./Dockefile ทำงาน นักเทียบท่าอาจต้องการอัปเดตเอกสารประกอบสำหรับผู้ใช้ Windows
villanux

4
ถ้าdocker build -t XXX --file ./Dockefileมันอาจเป็นเพราะคุณผิดชื่อไฟล์มันก็หายไปอาร์
eXa

17
นี่เป็นข้อความแสดงข้อผิดพลาดที่ไม่ดีอย่างน่าประหลาดใจนั่นหมายถึง "ไม่สามารถเปิดไฟล์" - เหมือนกันบน Linux และ macOS
RichVel

ข้อความแสดงข้อผิดพลาดที่ไม่ดีเหลือเชื่อ
การชดเชย จำกัด

คำตอบ:


205

ขณะดำเนินการคำสั่งต่อไปนี้:

docker build -t docker-whale .

ตรวจสอบว่า Dockerfile มีอยู่ในไดเรกทอรีการทำงานปัจจุบันของคุณ


28
ขอบคุณ ปัญหาของฉันคือฉันได้สร้าง Dockerfile ของฉันใน Notepad และมันได้ผนวก. txt เข้ากับชื่อไฟล์โดยอัตโนมัติ
IanGSY

5
คุณอาจเขียนชื่อ Dockerfile อย่างชัดเจนด้วยแฟล็fกเช่นdocker build -f Dockerfile-dev.yaml -t my_container .นี้อาจพิสูจน์ได้ว่ามีประโยชน์หากคุณมี Dockerfile หลายตัวในโครงการของคุณตัวอย่างเช่นหนึ่งต่อสภาพแวดล้อม เช่นเดียวกับนักเขียนที่ประกอบด้วยนักเทียบท่า การวางไว้ในไดเรกทอรีย่อยที่แตกต่างกันจะไม่ทำงานเนื่องจากบริบท ( .) จะไม่ตรงกัน
Sumi Straessle

1
@IANGSY ฉันหวังว่าฉันจะให้คะแนนมากขึ้นสำหรับคุณ นั่นก็เป็นปัญหาของฉันเช่นกัน!
K. Brafford

5
Notepad เป็นโปรแกรมที่ชั่วร้ายมากเกินไป
ต่อ Lundberg

99

มันเป็นความอัปยศ!

ข้อความแสดงข้อผิดพลาดทำให้เข้าใจผิด ปัญหาไม่เกี่ยวข้องกับ symlinks จริงๆ โดยทั่วไปแล้วจะมีเฉพาะนักเทียบท่าที่ไม่สามารถหา Dockerfile ที่อธิบายถึงบิลด์

เหตุผลทั่วไปคือ:

  • Dockerfile มีชื่อที่ไม่ถูกต้อง มันจะต้องเรียกว่า
    Dockerfileถ้าจะเรียกว่าตัวอย่างเช่นdockerfile, .Dockerfile, Dockerfile.txtหรืออื่น ๆ ก็จะไม่พบ
  • Dockerfile คือไม่ได้อยู่ในบริบท
    ถ้าคุณบอกว่าdocker build contextdirที่ Dockerfile contextdir/Dockerfileต้องมี หากคุณมีมันพูด./Dockerfileแทนมันจะไม่ถูกพบ
  • Dockerfile ไม่มีอยู่เลย
    ฟังดูงี่เง่า? ฉันได้รับข้อความแสดงข้อผิดพลาดจาก GitLab CI ของฉันหลังจากที่ฉันเขียน Dockerfile ที่ดี แต่ลืมที่จะตรวจสอบมัน Silly? แน่ใจ ไม่น่า? เลขที่

มันไม่ใช่ความอัปยศเท่านั้น ...

ไม่เพียง แต่ข้อความผิดพลาดนี้จะคลุมเครือและสับสน ฉันมักจะพบแนวคิดเกี่ยวกับนักเทียบท่าบางส่วนและเอกสารจำนวนมากที่ไม่แม่นยำทางความหมาย

หนึ่งในจุดที่ไม่ดีจริงๆคือความคิดของ "แท็ก" (ณ เดือนสิงหาคม 2019) ขึ้นอยู่กับตำแหน่งที่คุณดูในเอกสารมันกำลังพูดถึงสิ่งต่าง ๆ ต่อไปนี้ทั้งหมด (ชัดเจนหรือน้อยกว่า):

  • มีtagคำสั่งอยู่ แต่อาร์กิวเมนต์ที่คุณระบุนั้นไม่ได้เรียกว่าชื่อแท็กหรือชื่อแท็กมันเรียกว่าชื่อรูปภาพ
  • ชื่อรูปภาพประกอบด้วยชื่อรูปภาพและแท็กคั่นด้วยเครื่องหมายโคลอน
  • ในtagอาร์กิวเมนต์คำสั่งชื่อแท็กเป็นทางเลือก แต่ชื่อรูปภาพนั้นจำเป็นต้องมี ชัดเจน.
  • ในคำของหน้าเอกสาร:
    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • แต่ไม่ใช่ชื่อภาพทั้งหมดในชื่อภาพนั้นจริง ๆ แล้วเป็นชื่อรูปภาพเพราะชื่อภาพสามารถนำหน้าด้วยชื่อโฮสต์
  • แม้ว่าบางครั้งส่วนชื่อโฮสต์จะถือเป็นส่วนหนึ่งของชื่อภาพ
  • ไม่ว่าในกรณีใดรูปภาพที่มีชื่อโฮสต์xใน (หรือก่อนหน้า แต่อย่างใดอย่างน่าอัศจรรย์เสมอยึดมั่น) ชื่อภาพนั้นควรจะอยู่บนโฮสต์นั้นx(ในรีจิสทรี) xหากคุณต้องการที่จะเข้าถึงเช่นภาพคุณมากหรือน้อยต้องใช้ชื่อนี้กับคำนำหน้าเป็นเจ้าภาพ
  • แต่รูปภาพที่มีชื่อนั้นสามารถใช้งานได้บนโฮสต์ใด ๆ ไม่ใช่แค่เปิดxเพราะ "การกด" ภาพxนั้นเป็นการดำเนินการแยกต่างหาก
  • ดังนั้นการเห็นชื่อในรายการรูปภาพของนักเทียบท่านั้นไม่ได้มีความหมายอะไรมากนัก บางครั้งผิดพลาด
  • โดยวิธีการ: ฉันไม่พูดถึง namespaces? พวกเขาสามารถไประหว่างชื่อโฮสต์และชื่อภาพในชื่อภาพ และยังเป็นส่วนหนึ่งของชื่อภาพหรือไม่ขึ้นอยู่กับว่าคุณมอง

หากคุณสับสนสิ่งนี้มันไม่ใช่ความผิดของคุณ

สิ้นสุดการคุยโว


ฉันคิดว่านี่จะเป็นคำตอบที่ดีขึ้น (และมีความเกี่ยวข้องมากขึ้น) หากไม่มีครึ่งหลัง
พอลเกียร์

2
คำตอบที่ยอดเยี่ยมและขอบคุณสำหรับข้อมูลพื้นฐาน
leon

เคล็ดลับเพิ่มเติมที่แก้ไขปัญหาของฉันด้วยข้อความเดียวกัน: ตรวจสอบให้แน่ใจว่า CaSinG ของคุณถูกต้อง สำหรับเส้นทาง Directory รวมถึง Dockerfile เนื่องจาก linux ค่อนข้างพิถีพิถันเกี่ยวกับเรื่องนั้น
RaimondB

38

หากคุณกำลังทำงานกับ windows 8 คุณจะต้องใช้กล่องเครื่องมือ Docker จากไดเร็กทอรี mydockerbuild ให้รันคำสั่งด้านล่างเนื่องจาก Dockerfile ของคุณเป็นไฟล์ข้อความ

docker build -t docker-whale -f ./Dockerfile.txt .

3
สำหรับการอ้างอิงในอนาคตหากคุณต้องการทำสิ่งนี้เป็นเพราะ Dockerfile ของคุณมีส่วนขยายในขณะที่โดยค่าเริ่มต้น Docker คาดว่าจะไม่เกินไป การตั้งค่าไฟล์ด้วยตนเองด้วยส่วนขยายจะเพิ่มอาการปวดหัวที่คุณไม่ต้องการ คุณควรตั้งให้ Windows explorer แสดงส่วนขยายจากนั้นนำส่วนขยายออก
อเล็กซ์

หากคุณกำลังติดตามตามเอกสารคู่มือนักเทียบท่า "เริ่มต้นใช้งาน" คุณจะใช้สิ่งนี้:docker build -t friendlyhello -f ./Dockerfile.txt .
Mike Kellogg

ความหมายที่แย่จริงๆที่คุณต้องระบุชื่อไฟล์และเส้นทางจำลองด้วย และ / หรือตั้งชื่อไฟล์ของคุณเป็น Dockerfile เสมอ .. :-(
myloginid

สิ่งนี้ช่วยชีวิตฉันไว้ อย่างไรก็ตามฉันใช้เครื่อง Mac แต่ที่นี่คือจับได้ว่า Dockerfile สร้างไฟล์ข้อความธรรมดา ขอบคุณเพื่อนที่ช่วย
Sachidananda Naik

23

ชื่อของไฟล์ที่ควรจะเป็นและไม่ได้Dockerfile ไฟล์ไม่ควรมีส่วนขยายใด ๆ.Dockerfile


14

ฉันตั้งชื่อไฟล์ dockerfile ของฉันแทน Dockerfile (ตัวพิมพ์ใหญ่) และเมื่อฉันเปลี่ยนมันแล้วมันก็เริ่มประมวลผล "Dockerfile" ของฉัน


14

เพียงลบนามสกุล. txt ออกจาก Dockerfile และเรียกใช้คำสั่ง

docker build -t image-name 

มันจะทำงานได้อย่างแน่นอน


9

ฉันพบข้อผิดพลาด (ใน MacBook) แม้ว่าฉันจะใช้คำสั่งที่ถูกต้องเพื่อสร้างภาพ

docker build -t testimg .

ต่อมาฉันพบว่าเส้นทางเป็นปัญหา เพียงนำทางไปยังเส้นทางที่ถูกต้องที่มีไฟล์นักเทียบท่า เพียงตรวจสอบไดเรกทอรีการทำงานปัจจุบันของคุณอีกครั้งไม่ต้องตกใจ!


4

ใน windows 10 ... period เป็นพารามิเตอร์ตัวแรก

docker build . -t docker-whale


8
ไม่ใช่อีกต่อไป (ถ้าเคย) docker build -t docker-whale .เป็นคำสั่งที่ถูกต้อง
sebagomez


4

ใน WSL ดูเหมือนจะมีปัญหากับการแปลงเส้นทาง ตำแหน่งของ Dockerfile ใน Ubuntu (ที่ฉันใช้งานนักเทียบท่าและตำแหน่งที่ Dockerfile ใช้งานอยู่) คือ "/ 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.

ฉันมีปัญหาที่คล้ายกันกับตัวแปรสภาพแวดล้อมในระหว่างการติดตั้งครั้งแรกและทำตามคำแนะนำที่บอกว่าติดตั้ง Windows DockerCE และแฮกตัวแปรสภาพแวดล้อมแทนที่จะติดตั้ง Ubuntu DockerCE เพราะ (ฉันหวังว่าฉันจำได้อย่างถูกต้อง) ว่า WSL systemctl เมื่อติดตั้ง Windows Docker CE เสร็จแล้วและตั้งค่าตัวแปรสภาพแวดล้อมแล้ว Docker จะทำงานได้ดีภายใต้ WSL / Ubuntu


สิ่งนี้ได้ผลสำหรับฉัน! ฉันเพิ่งติดตั้ง Docker Toolbox และไม่ได้ติดตั้งใน WSL; ฉันใช้โปรแกรมปฏิบัติการ windows โดยตรงแทนเนื่องจาก WSL สามารถทำได้ในตอนนี้
Lawrence Lee

4

ฉันได้สร้างเครื่องมือ DockerFile ของฉันโดย VS2017 Docker Support และมีข้อผิดพลาดเดียวกัน หลังจากที่ในขณะที่ผมรู้ว่าผมไม่ได้อยู่ในไดเรกทอรีที่ถูกต้องที่มี (~\source\repos\DockerWebApplication\)Dockerfile cd'ed ไปยังไฟล์ที่ถูกต้อง(~/source/repos/DockerWebApplication/DockerWebApplication)ซึ่งอยู่ภายในโครงการและสร้างอิมเมจนักเทียบท่าสำเร็จ


4

คำสั่งด้านล่างทำงานสำหรับฉันนักเทียบท่าสร้าง -t docker-whale -f Dockerfile.txt


Dockerfile ไม่ใช่ไฟล์. txt หากคุณมีมันเป็นไฟล์. txt มันจะให้ข้อผิดพลาดอีกครั้ง
Donald Shahini

3

สองวิธีในการสร้างไฟล์ dockerfile:

คุณสามารถตัดสินใจที่จะไม่ระบุชื่อไฟล์ที่จะสร้างจากนั้นสร้างมันขึ้นมาเพื่อระบุพา ธ (ด้วยวิธีนี้ชื่อไฟล์จะต้องDockerfileไม่มีนามสกุลต่อท้ายเช่น:docker build -t docker-whale:tag path/to/Dockerfile

หรือ

คุณสามารถระบุไฟล์ที่มี-fและมันไม่สำคัญว่าสิ่งที่ส่วนขยาย (ภายในเหตุผล.txt, .dockerfile, .Dockerfileฯลฯ .. ) docker build -t docker-whale:tag /path/to/file -f docker-whale.dockerfileคุณตัดสินใจที่จะใช้เช่น


2

ตอนแรกฉันสร้าง Dockerfile ของฉันใน PowerShell และถึงแม้ว่าฉันไม่เห็นส่วนขยายของไฟล์มันแสดงว่าเป็นประเภทไฟล์ PS ... เมื่อฉันสร้างไฟล์จาก Notepad ++ ต้องแน่ใจว่าได้เลือกไฟล์ "All types ( . )" พิมพ์โดยไม่มีนามสกุลบนชื่อไฟล์ (Dockerfile) นั่นทำให้คำสั่งการสร้างอิมเมจของฉันเสร็จสมบูรณ์ .... เพียงตรวจสอบให้แน่ใจว่า Dockerfile ของคุณมีประเภทของ "ไฟล์" ...


2

ปัญหาคือชื่อไฟล์ควรเป็น Dockerfile และไม่ใช่ DockerFile หรือ dockerfile ควรเป็น D capital ตามด้วย ockerfile เป็นตัวพิมพ์เล็กโปรดทราบ


2

ต้องแน่ใจว่าคุณDOCKERfileอยู่ใน ROOT ของไดเรกทอรีแอปพลิเคชันฉันมีเหมืองเป็น src ซึ่งทำให้เกิดข้อผิดพลาดนี้เพราะ Docker ไม่พบเส้นทางไปยังDOCKERfile


1

หากต้องการสร้าง Dockerfile ให้บันทึกเนื้อหาอัตโนมัติใน Dockerfile ไม่ใช่ Dockerfile เพราะในขณะที่เปิดคำสั่งไฟล์:

$ notepad Dockerfile 

(ไฟล์ข้อความถูกเขียนเพื่อไม่สามารถสร้างไฟล์ได้)

ในการสร้างไฟล์ให้รัน:

$ notepad Dockerfile

และตอนนี้ทำงาน:

$ docker build -t docker-whale .

ตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเรกทอรีปัจจุบันของ Dockerfile


1

ที่สำคัญที่สุดคือให้แน่ใจว่าชื่อไฟล์ของคุณคือDockerfileถ้าคุณใช้ชื่ออื่นมันจะไม่ทำงาน (อย่างน้อยก็ไม่ใช่สำหรับฉัน)

นอกจากนี้หากคุณอยู่ใน dir เดียวกับที่ Dockerfile ใช้.เช่น docker build -t Myubuntu1:v1 . หรือใช้พา ธ สัมบูรณ์เช่น docker build -t Myubuntu1:v1 /Users/<username>/Desktop/Docker


1

ฉันเป็นกรณีของฉัน (เรียกใช้จาก Windows 10)
1) เปลี่ยนชื่อไฟล์myDockerFile.Dockerfileเป็นDockerfile( ไม่มีนามสกุลไฟล์)
จากนั้นเรียกใช้จากนอกโฟลเดอร์คำสั่งนี้:

docker build .\Docker-LocalNifi\ 

สิ่งนี้ใช้ได้กับฉันและสำหรับเพื่อนร่วมงานในที่ทำงานหวังว่าจะได้ผลกับคุณเช่นกัน


1

ตรวจสอบว่าชื่อไฟล์ "Dockerfile" ไม่ได้ถูกบันทึกพร้อมนามสกุล เพียงสร้างไฟล์โดยไม่มีนามสกุล

และตรวจสอบให้แน่ใจว่า Dockerfile อยู่ในไดเรกทอรีเดียวกันกับตำแหน่งที่คุณพยายามสร้างภาพนักเทียบท่า


1

ในกรณีที่เรามีไฟล์นักเทียบท่าหลายไฟล์ในสภาพแวดล้อมของเราเพียงแค่ Dockerfile จะไม่เพียงพอกับความต้องการของเรา

docker build -t ihub -f Dockerfile.ihub .

ดังนั้นใช้fileคำสั่ง (-f อาร์กิวเมนต์) เพื่อระบุไฟล์ docker ของคุณ (Dockerfile.ihub)


นอกจากนี้ยังจำเป็นต้องมี.(จุด) ที่ท้ายบรรทัดตามที่แสดงด้านบน
Purplejacket

เอกสารสำหรับdocker buildอยู่ที่นี่: docs.docker.com/engine/reference/commandline/build
Purplejacket

0

ฉันได้รับสิ่งนี้บน Windows เมื่อเส้นทางที่ฉันทำงานอยู่นั้นอยู่ภายใต้ไดเรกทอรี Junction ดังนั้นการแก้ไขของฉันคือการไม่ทำงานภายใต้เส้นทางนั้น


0

บน Macมันใช้งานได้สำหรับคำสั่งด้านล่าง (หวังว่าคุณ.Dockerfileจะอยู่ในไดเรกทอรีรากของคุณ)

docker build -t docker-whale -f .Dockerfile .

0

ปัญหาเกี่ยวข้องกับกระบวนการสร้าง DockerFile

ในการทำงานให้เปิด cmd, cd ไปยังไดเรกทอรีที่สนใจและพิมพ์:

abc>DockerFile

สิ่งนี้จะสร้างไฟล์ชื่อ DockerFile ในโฟลเดอร์ของคุณ

ตอนนี้พิมพ์:

notepad DockerFile 

นี่จะเป็นการเปิดไฟล์ DockerFile ในแผ่นจดบันทึกและคุณจะต้องคัดลอก / วางรหัสมาตรฐานที่ให้ไว้

บันทึกไฟล์และสุดท้ายสร้างรูปภาพของคุณด้วยการพิมพ์ Docker:

docker build -t docker-whale . 

มันใช้งานได้สำหรับฉันและฉันหวังว่ามันจะช่วยเหลือผู้อื่น


0

ฉันสร้างอย่างผิดพลาดDockerfile.txtในไดเรกทอรีการทำงานของฉันซึ่งนำไปสู่ข้อผิดพลาดดังกล่าวข้างต้นในขณะที่build

การแก้ไขคือการลบ.txtนามสกุลออกจากไฟล์

ชื่อไฟล์ที่ควรจะเป็นDockerfileเท่านั้นโดยไม่มีนามสกุลใด


0

ดำเนินการdocker build -t getting-started .ในไดเรกทอรีโครงการของคุณและตรวจสอบให้แน่ใจว่า Dockerfile มีอยู่แล้วและไม่มี.txtนามสกุล หากคุณใช้ Windows ให้ตรวจสอบ 'นามสกุลไฟล์ชื่อ' ในแท็บมุมมองใน File Explorer เพื่อแสดงว่า. txt อยู่ที่นั่นหรือไม่และลบออกหากอดีตเป็นจริง โชคดี.


0

ฉันยังประสบปัญหาเดียวกันและแก้ไขเมื่อฉันสร้างไฟล์ชื่อด้วย DockerFile และกล่าวถึงคำสั่งทั้งหมดที่ต้องการดำเนินการในขณะที่สร้างภาพใด ๆ


0

ข้อผิดพลาดหมายความว่าdocker buildกำลังใช้PATH | URLอินพุตที่ไม่ถูกต้องหรือDockerfileไม่พบในไดเรกทอรีปัจจุบัน นอกจากนี้ตรวจสอบให้แน่ใจว่าเมื่อรันคำสั่งจากเทอร์มินัลรวม (เช่นbashภายใน IDE หรือโปรแกรมแก้ไขข้อความ) คุณมีสิทธิ์ผู้ดูแลระบบที่จะทำ ดีที่สุดถ้าคุณสามารถตรวจสอบPATHจากเทอร์มินัลของคุณด้วยpwd(ในbash shellหรือdirถ้าใช้ง่าย ๆcliบน windows) และคัดลอกเส้นทางที่แน่นอนที่คุณต้องการสร้างรูป

docker build C:\windows\your_amazing_directory

docker build --help จะแสดงตัวเลือกที่คุณสามารถใช้ได้ในกรณีที่คำสั่งผิดรูปแบบหรือผิดกฎหมาย


-1

ฉันลองสิ่งนี้และใช้งานได้:

$ docker build -t test_dotnet_image 
"C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"

โปรดดูเครื่องหมายคำพูด + ยกเลิกการอ้างอิงรอบ ๆ ชื่อเล่น

หมายเหตุ: ในโฟลเดอร์"C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"ฉันมี Dockerfile ของฉัน


-1

เพื่อสร้างภาพจากบรรทัดคำสั่งใน windows / linux 1. สร้างไฟล์นักเทียบท่าในไดเรกทอรีปัจจุบันของคุณ เช่น: จาก Ubuntu RUN apt-get update RUN apt-get -y ติดตั้ง apache2 เพิ่ม / var / www / html ENTRYPOINT apachectl -D FOREGROUND ENV ชื่อ Devops_Docker 2. อย่าบันทึกด้วยนามสกุล. txt 3. ภายใต้บรรทัดคำสั่งให้รันคำสั่ง build docker -t apache2image

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.