Saya baru saja mengunduh Docker Toolbox untuk Windows 10 64bit hari ini. Saya akan melalui tutorial. Saya menerima kesalahan berikut ketika mencoba membangun gambar menggunakan Dockerfile.
Langkah:
- Meluncurkan terminal Docker Quickstart.
- testdocker setelah membuatnya.
- Mempersiapkan Dockerfile sebagaimana didokumentasikan dalam tautan web "Build your own"
- berlari di bawah komando
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: Saya mencoba beberapa opsi yang disebutkan @ 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
dockerfile
villanux
sumber
sumber
docker build -t XXX --file ./Dockefile
itu mungkin karena Anda mendapatkan nama file yang salah itu kehilangan R.Jawaban:
saat menjalankan perintah berikut:
periksa apakah Dockerfile ada di direktori kerja Anda saat ini.
sumber
f
bendera, seperti dalamdocker build -f Dockerfile-dev.yaml -t my_container .
Hal ini mungkin berguna jika Anda memiliki beberapa Dockerfile di proyek Anda, satu per lingkungan, misalnya. Hal yang sama berlaku untuk komposisi buruh pelabuhan. Menempatkan mereka di subdirektori yang berbeda tidak akan berfungsi, karena konteksnya (.
) tidak akan cocok.Memalukan!
Pesan kesalahan menyesatkan. Masalahnya sebenarnya tidak ada hubungannya dengan symlinks. Biasanya hanya buruh pelabuhan yang tidak dapat menemukan Dockerfile yang menggambarkan bangunan.
Alasan umum adalah ini:
Itu harus disebut
Dockerfile
. Jika hal itu disebut, misalnya,dockerfile
,.Dockerfile
,Dockerfile.txt
, atau lainnya, itu tidak akan ditemukan.Jika Anda mengatakan
docker build contextdir
, Dockerfile harus dicontextdir/Dockerfile
. Jika Anda memilikinya, katakan./Dockerfile
saja, itu tidak akan ditemukan.Kedengarannya konyol? Yah, saya mendapat pesan kesalahan di atas dari GitLab CI saya setelah saya menulis Dockerfile yang bagus, tetapi lupa untuk memeriksanya. Konyol? Tentu. Tidak sepertinya? Tidak.
Ini bukan satu-satunya rasa malu ...
Tidak hanya pesan kesalahan yang satu ini tidak jelas dan membingungkan. Saya biasanya menemukan beberapa konsep buruh pelabuhan dan banyak dokumentasi yang tidak tepat secara semantik.
Salah satu tempat yang benar-benar buruk adalah gagasan "tag" (pada Agustus 2019). Tergantung di mana Anda melihat dalam dokumentasi, itu mengatakan semua hal berikut (kurang lebih jelas):
tag
perintah, tetapi argumen yang Anda berikan tidak disebut tag atau nama tag, itu disebut nama gambar.tag
argumen perintah, nama tag adalah opsional tetapi nama gambar wajib. Jelas.docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
x
di (atau sebelumnya, tetapi entah bagaimana secara ajaib selalu melekat) nama gambarnya kemudian seharusnya hidup di host itux
(dalam registri). Jika Anda ingin mengakses gambar seperti itu, Anda kurang lebih harus menggunakan nama ini dengan awalan hostx
.x
, karena "mendorong" gambar kex
adalah operasi yang terpisah.Jika Anda bingung dengan ini, itu bukan salah Anda.
Akhir kata-kata kasar.
sumber
Jika Anda bekerja di windows 8 Anda akan menggunakan kotak alat Docker. Dari direktori mydockerbuild, jalankan perintah di bawah ini karena Dockerfile Anda adalah file teks
sumber
docker build -t friendlyhello -f ./Dockerfile.txt .
Nama file seharusnya
Dockerfile
dan bukan.Dockerfile
. File tidak boleh memiliki ekstensi apa pun.sumber
Saya menamai file dockerfile saya alih-alih Dockerfile (dengan huruf besar), dan begitu saya mengubahnya, file itu mulai memproses "Dockerfile" saya.
sumber
Hapus saja ekstensi .txt dari Dockerfile dan jalankan perintah
Pasti akan berhasil.
sumber
Saya mendapatkan kesalahan ini (di MacBook) meskipun saya menggunakan perintah yang benar untuk membuat gambar,
Kemudian saya menemukan bahwa jalan adalah masalahnya. Navigasikan ke jalur yang benar yang berisi file buruh pelabuhan. Cukup periksa direktori kerja Anda saat ini. Tidak ada yang panik!
sumber
Di windows 10 ... periode adalah parameter pertama
docker build . -t docker-whale
sumber
docker build -t docker-whale .
adalah perintah yang validItu hanya karena Notepad menambahkan ".txt" di akhir Dockerfile
sumber
Di WSL, tampaknya ada masalah dengan konversi jalur. Lokasi Dockerfile di Ubuntu (tempat saya menjalankan docker dan tempat Dockerfile tinggal) adalah "/ home / sxw455 / App1", tetapi tidak satu pun dari perintah ini bekerja:
Namun di Windows, jalur sebenarnya adalah:
Jadi saya harus melakukan ini (walaupun saya berlari dari bash):
Saya memiliki masalah yang sama dengan variabel lingkungan selama instalasi awal, dan mengikuti beberapa saran yang mengatakan untuk menginstal Windows DockerCE dan meretas variabel lingkungan daripada menginstal DockerCE Ubuntu, karena (saya harap saya ingat ini dengan benar) bahwa WSL tidak sepenuhnya menerapkan systemctl. Setelah instalasi Windows Docker CE dilakukan dan variabel lingkungan diatur, buruh pelabuhan kemudian bekerja dengan baik di bawah WSL / Ubuntu.
sumber
Saya telah membuat DockerFile oleh alat Dukungan Docker VS2017 dan memiliki kesalahan yang sama. Setelah beberapa saat saya menyadari bahwa saya tidak berada di direktori yang benar yang berisi Dockerfile
(~\source\repos\DockerWebApplication\)
. cd ke file(~/source/repos/DockerWebApplication/DockerWebApplication)
yang benar yang ada di dalam proyek dan berhasil membuat gambar buruh pelabuhan.sumber
Perintah di bawah ini berfungsi untuk saya build buruh pelabuhan -t docker-whale -f Dockerfile.txt.
sumber
Dua cara untuk membangun buruh pelabuhan:
Anda dapat memutuskan untuk tidak menentukan nama file yang akan dibangun dan hanya membangunnya menentukan jalur (melakukannya dengan cara ini nama file harus
Dockerfile
tanpa ekstensi ditambahkan, misalnya:docker build -t docker-whale:tag path/to/Dockerfile
atau
Anda dapat menentukan file dengan
-f
dan tidak peduli apa ekstensi (dalam alasan.txt
,.dockerfile
,.Dockerfile
dll ..) Anda memutuskan untuk menggunakan, misalnyadocker build -t docker-whale:tag /path/to/file -f docker-whale.dockerfile
.sumber
Saya awalnya membuat Dockerfile saya di PowerShell dan meskipun saya tidak melihat ekstensi pada file itu menunjukkan sebagai PS File Type ... setelah saya membuat file dari Notepad ++ memastikan untuk memilih "All types ( . )" File Ketik tanpa ekstensi pada Nama File (Dockerfile). Itu memungkinkan perintah membangun gambar saya berhasil diselesaikan .... Pastikan Dockerfile Anda memiliki Jenis "File" ...
sumber
Masalahnya adalah bahwa nama file harus Dockerfile dan bukan DockerFile atau dockerfile itu harus huruf D diikuti oleh ockerfile dalam huruf kecil, harap dicatat
sumber
Pastikan Anda
DOCKERfile
berada di ROOT direktori aplikasi, saya punya tambang di src yang mengakibatkan kesalahan ini karena Docker tidak menemukan jalan keDOCKERfile
sumber
Untuk membuat Dockerfile menyimpan konten otomatis di Dockerfile. bukan Dockerfile karena saat membuka perintah file:
(File teks ditulis sehingga file tidak dapat membangun)
Untuk membangun menjalankan file:
dan Sekarang jalankan:
Pastikan Anda berada di direktori Dockerfile saat ini.
sumber
Yang paling penting pastikan nama file Anda adalah
Dockerfile
jika Anda menggunakan nama lain itu tidak akan berfungsi (setidaknya itu tidak untuk saya.)Juga jika Anda berada di dir yang sama di mana Dockerfile menggunakan
.
iedocker build -t Myubuntu1:v1 .
atau menggunakan path absolut yaitudocker build -t Myubuntu1:v1 /Users/<username>/Desktop/Docker
sumber
Saya kasus saya (lari dari Windows 10)
1) Ubah nama file
myDockerFile.Dockerfile
menjadiDockerfile
( tanpa ekstensi file).Kemudian jalankan perintah dari luar folder ini:
Ini bekerja untuk saya dan untuk rekan-rekan saya di tempat kerja, berharap itu juga akan bekerja untuk Anda
sumber
Pastikan nama file "Dockerfile" tidak disimpan dengan ekstensi apa pun. Cukup buat file tanpa ekstensi apa pun.
Dan pastikan Dockerfile berada di direktori yang sama dari tempat Anda mencoba membangun image buruh pelabuhan.
sumber
Jika kami memiliki beberapa file buruh pelabuhan di lingkungan kami, Dockerfile tidak akan mencukupi kebutuhan kami.
Jadi gunakan perintah
file
(-f argumen) untuk menentukan file buruh pelabuhan Anda (Dockerfile.ihub)sumber
.
(titik) di akhir baris, seperti yang ditunjukkan di atas.docker build
sini: docs.docker.com/engine/reference/commandline/buildSaya mendapatkan ini di Windows ketika jalur tempat saya bekerja berada di bawah direktori Junction. Jadi perbaikan saya adalah tidak bekerja di bawah jalur itu.
sumber
Di Mac berfungsi untuk perintah di bawah ini. (harap Anda
.Dockerfile
ada di direktori root Anda).sumber
Masalah ini terkait dengan prosedur pembuatan DockerFile.
Untuk bekerja, buka cmd, cd ke direktori yang menarik dan ketik:
Ini akan membuat file bernama DockerFile di dalam folder Anda.
Sekarang ketik:
Ini akan membuka file DockerFile di notepad dan Anda harus menyalin / menempel kode standar yang disediakan.
Simpan file dan sekarang, akhirnya, buat gambar Anda dengan mengetik Docker:
Ini bekerja untuk saya dan saya harap ini membantu orang lain
sumber
Saya keliru dibuat
Dockerfile.txt
di direktori kerja saya yang mengarah ke kesalahan sementara yang disebutkan di atasbuild
Cara mengatasinya adalah menghapus
.txt
ekstensi dari file.Nama file harus
Dockerfile
hanya tanpa ekstensi apa pun .sumber
Jalankan
docker build -t getting-started .
di direktori proyek Anda dan pastikan Dockerfile hadir dan tidak memiliki.txt
ekstensi. Jika Anda menggunakan Windows, periksa 'ekstensi nama file' di tab tampilan di bawah di File Explorer untuk menunjukkan apakah .txt ada atau tidak dan hapus jika yang pertama benar. Semoga berhasil.sumber
Saya juga menghadapi masalah yang sama dan diselesaikan ketika saya membuat file bernama dengan DockerFile dan menyebutkan semua perintah yang ingin dieksekusi saat membuat gambar apa pun.
sumber
Kesalahan berarti bahwa
docker build
baik menggunakanPATH | URL
input yang salah atau bahwaDockerfile
tidak dapat ditemukan di direktori saat ini. Juga, pastikan bahwa ketika menjalankan perintah dari terminal terintegrasi (mis. Dibash
dalam IDE atau editor teks) Anda memiliki izin admin untuk melakukannya. Terbaik jika Anda dapat memeriksaPATH
dari terminal Anda denganpwd
(dibash shell
ataudir
jika menggunakan sederhanacli
di windows) dan salin jalur yang tepat di mana Anda ingin gambar akan dibangun.docker build C:\windows\your_amazing_directory
docker build --help
juga akan menunjukkan kepada Anda opsi yang tersedia untuk digunakan jika ada perintah yang salah atau ilegal.sumber
Saya mencoba ini dan berhasil:
Silakan lihat tanda kutip + batalkan tanda kutip di sekitar nama pengguna.
Catatan: Di Folder
"C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"
saya punya Dockerfile saya.sumber
Untuk membangun gambar dari command-line di windows / linux. 1. Buat file buruh pelabuhan di direktori Anda saat ini. mis: FROM ubuntu RUN apt-get update RUN apt-get -y install apache2 ADD. / var / www / html ENTRYPOINT apachectl -D FOREGROUND ENV nama Devops_Docker 2. Jangan simpan dengan ekstensi .txt. 3. Di bawah command-line jalankan build docker perintah. -t apache2image
sumber