데몬의 오류 응답:현재 컨텍스트에 빌드 단계가 없습니다.
저는 여기서 찾은 코드를 사용하여 KVM으로 컨테이너를 실행하려고 했습니다. https://github.com/jessfraz/dockerfiles/tree/master/kvm 저는 새로운 디렉토리를 만들고 거기에 CD를 넣고 도커 파일과 start.sh 파일을 만들었습니다.빌드 명령을 내렸을 때 다음과 같은 오류 메시지가 출력되었습니다.
Sending build context to Docker daemon 3.584kB
Error response from daemon: No build stage in current context
이것이 무엇을 의미하는지 전혀 모르고 구글에서 답변을 찾을 수 없었습니다.도와드릴까요?
도커 파일에 다음이 있습니까?FROM repo/image
첫 번째 대사로?빌드할 도커 이미지를 지정하는 것을 잊었을 때 이 오류가 발생했습니다.
"소스 이미지"를 빌드하는 경우에도 지정해야 합니다.FROM scratch
도커 파일의 첫 번째 줄로 지정합니다.
이 문제는 일반적으로 FROM 명령 앞에 작성된 텍스트 때문에 발생합니다.도커 파일에서 주석을 제거하고 다시 빌드해 보십시오.
참고용으로 https://github.com/moby/buildkit/issues/164 .
이 메시지는 환경 변수(ENV
선언하기 전에FROM
.
예:
# 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
...
이 문제를 해결하려면 선언을 스왑하여 다음과 같이 환경 변수를 설정합니다.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
...
docs.docker.com 의 문서에 따르면 Docker 파일의 첫 번째 비매칭 행은 다음과 같아야 합니다.FROM
문서를 인용하자면:
그
FROM
명령은 새 빌드 단계를 초기화하고 이후 명령에 사용할 기본 이미지를 설정합니다.이와 같이, 유효한Dockerfile
다음으로 시작해야 합니다.FROM
설명.
사용하지 않는 제품을 계속 사용하는 경우MAINTAINER
키워드, 당신은 반드시 가지고 있어야 합니다.FROM
명령을 첫 번째 명령으로 사용합니다.Dockerfile
:
불량:
MAINTAINER your name "your@email.com"
FROM dockerimagename
양호:
FROM dockerimagename
MAINTAINER your name "your@email.com"
문제가 해결되었습니다.코드를 편집하기 위해 도커 파일로 이동했을 때 실수로 첫 줄의 주석을 제거한 것을 발견했습니다.바보 같은 실수, 알아요.두 분 모두 도와주셔서 감사합니다.
제 경우는 제가 그랬기 때문에.ENV
앞에 명시된.FROM
그리고 이미 언급했듯이,FROM
도커 파일의 첫 번째 식이어야 합니다.
그렇지만
이 PR https://github.com/moby/moby/pull/31352 이후로 지정할 수 있습니다.ARG
전에FROM
당신에게 적합한 대안일 수도 있습니다.
그래서 나는 변했습니다.
ENV MY_VAR 1
FROM ...
로.
ARG MY_VAR=1
FROM ...
참고로 ARG 대 ENV의 차이점에 대해서는 여기를 참조하십시오. https://vsupalov.com/docker-arg-vs-env/
저는 이것이 당신의 경우라고 생각하지 않지만, 다른 사람이 그 오류를 해결하는 데 도움이 될 수도 있습니다.
- 내 도커 파일은 그 오류 없이 실행되었습니다.
- 도커 파일의 시작 부분에 "FROM vcatechnology/linux-mint:18.2"를 추가했는데, 오류도 없습니다.
- FROM 문을 다시 삭제한 후에도 여전히 검색 중이어서 이 오류가 발생했습니다.
- FROM 문을 다시 추가해야만 오류를 제거할 수 있었습니다.
따라서 이 오류는 FROM 문으로 시작하는 도커 파일을 사용한 후 FROM 문을 다시 삭제한 경우에만 나타날 수 있습니다.
제 경우에는 RUN을 FROM으로 변경했습니다.
이전 도커 파일:
RUN php:8-apache
COPY /src var/www/html/
ENV APACHE_DOCUMENT_ROOT ./src/public/
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
EXPOSE 80
새 도커 파일:
FROM php:8-apache
COPY /src var/www/html/
ENV APACHE_DOCUMENT_ROOT ./src/public/
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
EXPOSE 80
언급URL : https://stackoverflow.com/questions/50452860/error-response-from-daemon-no-build-stage-in-current-context
'programing' 카테고리의 다른 글
부트스트랩에서 선택 선택 플러그인을 사용하여 선택 시 선택한 값을 설정하는 방법 (0) | 2023.07.31 |
---|---|
Powershell 시스템 추가 (0) | 2023.07.31 |
jQuery를 사용하여 Click 이벤트를 동적으로 추가 (0) | 2023.07.26 |
*ngIf를 사용하여 angular 2 템플릿에서 빈 객체를 확인하는 방법 (0) | 2023.07.26 |
passport.session() 미들웨어는 무엇을 합니까? (0) | 2023.07.26 |