นักเทียบท่า: ไม่สามารถเตรียมบริบท: ไม่สามารถประเมิน 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.