buruh pelabuhan: "membangun" membutuhkan 1 argumen. Lihat 'buruh pelabuhan - bantu'

315

Mencoba mengikuti instruksi untuk membuat gambar buruh pelabuhan dari situs web buruh pelabuhan.

https://docs.docker.com/examples/running_redis_service/

ini adalah kesalahan yang saya dapatkan akan mengikuti instruksi pada dokumen dan menggunakan Dockerfile ini

FROM        ubuntu:14.04
RUN         apt-get update && apt-get install -y redis-server
EXPOSE      6379
ENTRYPOINT  ["/usr/bin/redis-server"]


sudo docker build -t myrepo/redis
docker: "build" requires 1 argument. See 'docker build --help'.

Bagaimana cara mengatasinya?

Tampa
sumber

Jawaban:

657

Anda perlu menambahkan sebuah titik, contohnya docker build -t mytag .itu berarti Anda menggunakan Dockerfile di direktori lokal, dan jika Anda menggunakan docker 1.5, Anda dapat menentukan Dockerfile di tempat lain, ekstrak dari bantuan build docker-f, --file="" Name of the Dockerfile(Default is 'Dockerfile' at context root)

pengguna2915097
sumber
3
bisa tolong tandai perintah yang tepat: "buruh pelabuhan membangun -t mytag." tidak melihat titik
nekperu15739
6
@ user2915097 Saya tidak setuju. (dot) berarti direktori lokal, karena ketika menggunakan opsi -f (--file), meletakkan. (titik) masih wajib.
andolsi zied
5
itu. menetapkan konteks build
andolsi zied
35
Pertanyaan popularitas menunjukkan bagaimana sintaksis perintah buruh pelabuhan yang tidak jelas adalah ... Secara pribadi saya berpikir bahwa titik berarti hanya akhir dari kalimat ...
Disappointed
2
Halo dari docs.docker.com/get-started/part2/#apppy - Saya terlalu buta untuk melihatnya. di sana juga!
Alex Jansen
31

Apakah Anda menyalin perintah build dari tempat lain (halaman web atau file lain)? Coba ketikkan dari awal.

Saya menyalin perintah build dari tutorial AWS dan menempelkannya ke terminal saya dan mendapatkan kesalahan ini. Itu membuatku gila. Setelah mengetik dengan tangan, itu berhasil! Melihat lebih dekat dan perintah saya yang gagal sebelumnya, saya perhatikan karakter "dash" berbeda, itu karakter dash yang lebih tipis dan lebih panjang daripada yang saya dapatkan jika saya mengetiknya sendiri menggunakan kunci "minus / dash".

Buruk:

sudo docker build –t foo.

Baik:

sudo docker build -t foo.

Bisakah Anda melihat perbedaannya? Memotong dan menempel sulit.

Michael Peterson
sumber
22

Gunakan perintah berikut

docker build -t mytag .

Perhatikan bahwa mytag dan dot memiliki ruang di antara mereka. Titik ini mewakili direktori kerja saat ini.

arunprakashpj
sumber
17

masukkan deskripsi gambar di siniBerikan titik (.) Di akhir perintah termasuk satu spasi.

contoh:

perintah: buruh pelabuhan build -t "blink: v1".

Di sini Anda dapat melihat "blink: v1" lalu spasi kemudian dot (.)

Itu dia.

Harunduet
sumber
17

Dalam kasus saya kesalahan ini terjadi pada pipa Gitlab CI ketika saya melewati beberapa variabel Gitlab env docker builddengan --build-argflag.

Ternyata salah satu variabel memiliki ruang di dalamnya yang menyebabkan kesalahan. Sulit ditemukan karena log pipa hanya menunjukkan $VARIABLE_NAME.

Pastikan untuk mengutip variabel lingkungan agar ruang ditangani dengan benar.

Ubah dari:

--build-arg VARIABLE_NAME=$VARIABLE_NAME

untuk:

--build-arg VARIABLE_NAME="$VARIABLE_NAME"
spencer.sm
sumber
1
save my googling;)
Adiii
Persis inilah masalah yang saya miliki. Terima kasih banyak!
phi
10


Anda Membutuhkan DOT pada akhirnya ...


Jadi misalnya:

$ docker build -t <your username>/node-web-app .

Ini agak tersembunyi, tetapi jika Anda memperhatikan .pada akhirnya ...

Alireza
sumber
1
Kamu menyelamatkan hariku. Terimakasih.
PhatHV
3

Anda dapat membangun gambar buruh pelabuhan dari file yang disebut file buruh pelabuhan dan menamai Dockerfile secara default. Ini memiliki seperangkat perintah / instruksi yang Anda butuhkan dalam wadah buruh pelabuhan Anda. Perintah di bawah ini membuat gambar dengan tag terbaru, Dockerfile harus hadir di lokasi itu (. Berarti direcotry sekarang)

docker build . -t <image_name>:latest

Anda dapat menentukan Dockerfile melalui -f jika nama file tidak secara default (Dockerfile) konten file Docker Sameple.

FROM busybox
RUN echo "hello world"
Vaseem007
sumber
2

Pada versi Docker yang lebih lama, sepertinya Anda harus menggunakan urutan ini:

docker build -t tag .

dan tidak

docker build . -t tag

Ryan R
sumber
1

Buka PowerShelland dan ikuti instruksi ini. Jenis kesalahan ini tipically pada Windows SO Ketika Anda menggunakan perintah membangun perlu opsi dan jalur.

Ada jenis kesalahan ini karena Anda belum menentukan path dengan Dockerfile Anda.

Coba ini:

C:\Users\Daniele\app> docker build -t friendlyhello C:\Users\Daniele\app\
  1. friendlyhello adalah nama yang Anda tetapkan untuk conteiner Anda
  2. C: \ Users \ Daniele \ app \ adalah jalur yang memuat Dockerfile Anda

jika Anda ingin menambahkan tag

C:\Users\Daniele\app> docker build -t friendlyhello:3.0 C:\Users\Daniele\app\
daniele3004
sumber
1

Jika ada orang yang mengalami masalah ini ketika mencoba memberi tag -tpada gambar dan juga membangunnya dari file yang TIDAK bernama Dockerfile(yaitu tidak hanya menggunakan .jalur), Anda dapat melakukannya seperti ini:

docker build -t my_image -f my_dockerfile .

Perhatikan bahwa buruh pelabuhan mengharapkan direktori sebagai parameter dan nama file sebagai opsi.

Ricardo Pedroni
sumber
0

Masalah saya adalah Dockerfile.txt perlu dikonversi ke file yang dapat dieksekusi Unix. Setelah saya melakukan itu kesalahan itu hilang.

Anda mungkin perlu menghapus bagian .txt sebelum melakukan ini, tetapi pada mac pergi ke terminal dan cd ke direktori di mana Dockerfile Anda berada dan jenisnya.

chmod +x "Dockerfile"

Dan kemudian itu akan mengkonversi file Anda menjadi file executable Unix yang kemudian dapat dieksekusi oleh perintah membangun Docker.

SlickRemix
sumber
0

Perintah berikut bekerja untuk saya. File Docker ditempatkan di folder my-app-master.

build buruh pelabuhan -f my-app-master / Dockerfile -t my-app-master.

pengguna9441950
sumber
-4

Format Perintah Docker Build

Di PowerShell Anda: Ada jenis kesalahan ini karena Anda belum menentukan jalur dengan Dockerfile Anda.

Coba ini:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt

friendlyhello adalah nama yang Anda tetapkan untuk wadah Anda dan tambahkan versinya, cukup gunakan : terbaru

-f C: \ TestDockerApp \ Dockerfile.txt - Anda ingin menambahkan tag karena perintah build membutuhkan parameter atau tag - DockerFile adalah dokumen teks sehingga secara eksplisit menambahkan ekstensi .txt

** Coba format ini:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt .**
Adiel Isaacs
sumber
1
Perintah yang Anda berikan harus gagal dengan kesalahan yang sama. Anda harus memasukkan konteks build sebagai argumen, seringkali a .untuk menunjukkan direktori saat ini harus dikirim ke mesin buruh pelabuhan sebagai konteks build.
BMitch