Arka plan programından hata yanıtı: Mevcut bağlamda derleme aşaması yok


111

Burada bulduğum kodu kullanarak kvm ile bir konteyner çalıştırmaya çalışıyordum: https://github.com/jessfraz/dockerfiles/tree/master/kvm Yeni bir dizin oluşturdum, içine cd'ledim ve dockerfile'ı oluşturdum ve start.sh dosyaları. Derleme emri verdiğimde aşağıdaki hata mesajını verdi:

Derleme bağlamını Docker daemon 3.584kB'ye gönderme daemon'dan hata yanıtı: Geçerli bağlamda derleme aşaması yok

Bunun ne anlama geldiğine dair hiçbir fikrim yok ve bir cevap Google'da bulamadım. Herhangi bir yardım çok takdir edilecektir.

Yanıtlar:


208

Dockerfile dosyanızda: FROM repo/image

İlk satır olarak mı? Oluşturduğum docker imajını belirtmeyi unuttuğumda bu hatayı aldım.

Bir "kaynak görüntü" oluşturuyor olsanız bile, yine FROM scratchde dockerfile'ın ilk satırı olarak belirtmeniz gerekir .


21
Bu sorunu yaşadım çünkü FROM komutundan önce debian ön ucu için ENV ayarlıyordum. Teşekkürler!
adamconkey

6
@adamconkey, FROM'dan önce ARG'ye sahip olmanıza izin verilen özel bir durum var. FROM'dan önce olmasına izin verilen tek şey budur. İşte bununla
Paul Dejean

İLK satır olması gerekmez. Yorumsuz ilk satır olmalı. Açıklamayla resmi belgelere bağlantı için cevabımı kontrol edin.
NoBrainer

@NoBrainer Bilgisayar programlamasında, "ilk satır" terimi neredeyse her zaman ilk yorum olmayan satırı ifade eder.
Paul Dejean

@PaulDejean Docker, "bilgisayar programlama" değil, sistem yönetimidir. ;-)
NoBrainer

36

Bu genellikle FROM komutundan önce yazılan metin nedeniyle olur. Dockerfile dosyanızdaki yorumları kaldırmayı deneyin ve yeniden oluşturun.

Referans için https://github.com/moby/buildkit/issues/164


1
Bu tam olarak benim sorunumdu, bazı nedenlerden dolayı yorumladığım şeyler bile bu hatayı atmasına neden oluyordu. Hepsini kaldırdım ve şimdi iyi çalışıyor.
jamescampbell

Yorumlar bana herhangi bir soruna neden olmadı. Açıklamayla birlikte resmi belgelere bir bağlantı için cevabımı kontrol edin.
NoBrainer

18

Bu mesaj, bildirmeden ENVönce bir ortam değişkeni ( ) bildirdiğinizde görünür FROM.

Örneğin:

# Define variables.
ARG PORT
ENV SERVER_PORT=$PORT

# Install minimal Python 3.
FROM python:3.7-alpine

# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt

# Copy app source code.
COPY src/ /app
...

Bunu çözmek için, bildirimleri, herhangi bir ortam değişkeninin sonradan ayarlanacağı şekilde değiştirin FROM.

# Install minimal Python 3.
FROM python:3.7-alpine

# Define variables.
ARG PORT
ENV SERVER_PORT=${PORT}

# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt

# Copy app source code.
COPY src/ /app
...


12

Problem çözüldü. Kodu düzenlemek için dockerfile'a gittiğimde, yanlışlıkla ilk satırı yorumlamadığımı fark ettim. Aptalca bir hata, biliyorum. Yardımınız için ikinize de teşekkür ederim.


6

Ben de aynı sorunu yaşadım! Ne bana yardımcı oldu zorunda FROMdosyasındaki ilk komutu olarak komutunu :

KÖTÜ :

MAINTAINER your name "your@email.com"
FROM dockerimagename

İYİ :

FROM dockerimagename
MAINTAINER your name "your@email.com"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.