Docker buildx build kesinlikle bir argüman gerektiriyor hatasını nasıl düzeltirim?


Docker platformu proje dağıtımı için evrensel olarak kullanılmaktadır. Ancak yalnızca dağıtım değil, aynı zamanda Docker görüntüleri, konteynerler, docker kayıt defteri gibi farklı bileşenler sayesinde geliştirmeyi de kolaylaştırır. Bu bileşenler farklı komutlar aracılığıyla yönetilir ve “docker build” komutu bunlardan biridir. Bu komut, projeyi konteynere almak için docker konteyner anlık görüntüsünü oluşturmak için kullanılır.

Ancak, başlangıç seviyesi kullanıcı “docker build” komutunu çalıştırırken zorluklarla karşılaşabilir ve “docker buildx build requires exactly 1 argument” hatasıyla karşılaşabilir. Bu hata, Docker motoru konteyner anlık görüntüsünü veya imajını oluşturmak için gerekli olan yapılandırma bağlamını bulamadığında meydana gelir.

Bu makale, “Docker build tam olarak 1 argüman gerektiriyor” hatasını nasıl düzelteceğinizi gösterecektir.

“Docker build tam olarak bir argüman gerektirir” hatasını nasıl düzeltirim?

Docker buildx build tam olarak 1 argüman gerektiriyor hatasını düzeltmek için, öncelikle kullanıcının bu hatanın neden meydana geldiğini bilmesi gerekir. Bu hata, Docker'ın imayı oluşturmak için yapı bağlamını bulamadığında ortaya çıkar. Yapı bağlamı, aşağıda listelenen farklı nedenlerden dolayı kaybolmuştur:

  • Dockerfile farklı bir dizinde bulunduğunda ve kullanıcı docker build komutunu farklı bir dizinde çalıştırdığında.
  • Kullanıcı, “docker-file-1” gibi farklı bir adla Dockerfile oluşturduğunda, Dockerfile adı değişirse, Docker build komutu Dockerfile'dan yapı bağlamını okuyamaz. Bu durumda, kullanıcının “-f” seçeneği ile “docker build” komutunda tam dosya adını sağlaması gerekir.
  • Kullanıcı, build komutunda Dockerfile'ın doğru yolunu sağlamadığında.
  • Kullanıcı “docker build” komutunu çalıştırdığı dizinde bir dosya olduğunda ancak komutta “.” eklemeyi unuttuğunda veya kullanıcı aşağıda gösterildiği gibi görüntü adı veya etiketi belirtmek için “-t” seçeneğini eklemeyi unuttuğunda komut formatı yanlış olduğunda:

Belirtilen “docker build” hatasını düzeltmek için, tam komut formatını ve Dockerfile adını sağlayın. Ayrıca, “docker build” komutunu dosyanızın bulunduğu dizinde çalıştırın. Gösterim için, listelenen talimatları izleyin.

Adım 1: Dockerfile oluştur

Öncelikle, uzantısı olmayan “Dockerfile” adlı dosyayı oluşturun. Ardından, dosyada gereksinimlerinize göre talimatı tanımlayın. Örneğin, “app.py” adlı Python programını konteynırlaştırıyoruz:

FROM python

WORKDIR /app

COPY . /app

ENV USER="Docker-User"

CMD ["python", "app.py"]

Adım 2: Docker Görüntüsünü Oluştur

Sonra, yeni görüntüyü oluşturmak için “docker build -t <image-name>. ” komutunu kullanın. Burada, “-t ” seçeneği görüntü adını veya görüntü etiketini tanımlamak için kullanılır ve “. ” komutun çalıştığı aynı dizinden Dockerfile'ın inşa bağlamını okur:

docker build -t py-img .

Aşağıdaki çıktı, Dockerfile'dan herhangi bir hata almadan yapı bağlamını başarıyla okuduğumuzu göstermektedir:

Eğer Dockerfile farklı bir isimdeyse veya farklı bir dizinde bulunuyorsa, aşağıda gösterildiği gibi Dockerfile yolu ile birlikte “-f” seçeneğini kullanın:

docker build -t py-img -f Dockerfile .

Adım 3: Konteyner Oluştur ve Başlat

Sonra, Docker konteynerini oluşturmak ve başlatmak için “docker run” komutunu çalıştırın:

docker run py-img

Bu, “docker buildx build tam olarak 1 argüman gerektirir” hatasını çözmekle ilgili her şey.

Sonuç

"docker buildx build tam olarak 1 argüman gerektirir" hatası genellikle Docker'ın konteynerin anlık görüntüsünü oluşturmak için gerekli yapı bağlamını bulamadığında, yanlış komut formatı, Dockerfile adı veya yolu nedeniyle ortaya çıkar. Belirtilen sorunu düzeltmek için, "docker build -t -f ." gibi doğru komut formatını kullanın. Bu makale, "docker buildx build tam olarak bir argüman gerektirir" hatasını düzeltmek için çözümü sağlamıştır.