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?

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)


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.


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.


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.


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"

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 ...


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"

2

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

docker build -t tag .

dan tidak

docker build . -t tag


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\

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.


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.


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.


-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 .**

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.