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.