도커: "build"에는 인수가 1개 필요합니다.'도커 빌드 --도움말' 참조
도커 웹 사이트에서 도커 이미지를 작성하기 위한 지침을 따르려고 합니다.
https://docs.docker.com/examples/running_redis_service/
이것은 문서의 지침을 따르고 이 도커 파일을 사용할 것이라는 오류입니다.
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'.
어떻게 해결합니까?
로컬 디렉토리에서 도커 파일을 사용하는 점을 추가해야 합니다.
예:
docker build -t mytag .
즉, 로컬 디렉터리에서 Docker 파일을 사용하고, Docker 1.5를 사용하는 경우 다른 위치에서 Docker 파일을 지정할 수 있습니다.도커 빌드의 도움말 출력에서 추출합니다.
-f, --file="" Name of the Dockerfile(Default is 'Dockerfile' at context root)
여러 를 저의 변수를 Gitlab env 때전할달다우 Gitlab CI 오서발니로 전달할 때이했습니다.docker build
와 함께--build-arg
깃발들
변수 중 하나에 오류를 유발하는 공백이 있는 것으로 나타났습니다.파이프라인 로그가 방금 보여주었기 때문에 찾기가 어려웠습니다.$VARIABLE_NAME
.
공간이 올바르게 처리되도록 환경 변수를 따옴표로 묶어야 합니다.
변경 위치:
--build-arg VARIABLE_NAME=$VARIABLE_NAME
대상:
--build-arg VARIABLE_NAME="$VARIABLE_NAME"
빌드 명령을 다른 곳(웹 페이지 또는 다른 파일)에서 복사했습니까?처음부터 다시 입력해 보세요.
AWS 튜토리얼에서 빌드 명령을 복사하여 단말기에 붙여 넣었더니 이 오류가 발생했습니다.그것은 나를 미치게 했습니다.손으로 입력한 후, 효과가 있었습니다!자세히 살펴보니 이전에 실패한 명령어가 "대시" 문자와 달랐고, "마이너스/대시" 키를 사용하여 직접 입력했을 때보다 얇고 긴 대시 문자였습니다.
불량:
sudo docker build –t foo.
좋습니다.
sudo 도커 빌드 -t foo.
차이점을 알 수 있습니까?자르고 붙이는 것은 어렵습니다.
를 할때 이 이 있는 -t
및▁that▁▁the▁named▁file드▁and▁it라는 이름이 아닌 파일로 빌드합니다.Dockerfile
( (즉, 단순사지않음하용히)를 .
경로), 다음과 같이 수행할 수 있습니다.
docker build -t my_image -f my_dockerfile .
도커는 디렉토리를 매개 변수로 지정하고 파일 이름을 옵션으로 지정해야 합니다.
다음 명령을 사용합니다.
docker build -t mytag .
내 태그와 점은 그 사이에 공백이 있습니다.이 점은 현재 작업 디렉터리를 나타냅니다.
하나의 공백을 포함하여 명령 끝에 점(.)만 제공합니다.
예:
명령: 도커 빌드 -t "docker:v1".
여기서 "blink:v1", 공백, 점()을 볼 수 있습니다.
바로 그거야.
마지막에는 DOT가 필요합니다.
예를 들어 다음과 같습니다.
$ docker build -t <your username>/node-web-app .
약간 숨겨져 있지만, 만약 여러분이 주의를 기울인다면..
마지막에...
명령 실행에서:
sudo docker build -t myrepo/redis
" " 니된없arguments "에 된 "가 없습니다docker build
명령, 단플그만래일-t
를 구문 분석한 후할 때 .도커가 명령에 대한 모든 플래그를 구문 분석한 후 빌드를 실행할 때 하나의 인수가 남아 있어야 합니다.
이 인수가 빌드 컨텍스트입니다.표준 명령에는 컨텍스트에 대한 후행 점이 포함됩니다.
sudo docker build -t myrepo/redis .
빌드 컨텍스트는 무엇입니까?
모든 도커 빌드는 디렉토리를 빌드 서버로 보냅니다.도커는 클라이언트/서버 응용프로그램이며 빌드는 도커 명령이 실행되는 곳이 아닌 서버에서 실행됩니다. 컨텍스트를 Docker에서 되는 파일의 합니다.COPY
그리고.ADD
때 계단을 합니다. 빌드를 실행하기 위해 현재 디렉토리에 있을 때, 당신은 다음을 통과할 것입니다..
컨텍스트(예: 현재 디렉터리)입니다.완전히 다른 디렉터리, 심지어 gitrepo도 전달할 수 있으며 도커는 이를 컨텍스트로 사용하여 빌드를 수행합니다. 예:
docker build -t sudobmitch/base:alpine --target alpine-base \
'https://github.com/sudo-bmitch/docker-base.git#main'
빌드 명령에 대한 이러한 옵션에 대한 자세한 내용은 도커 빌드 설명서를 참조하십시오.
만약 당신이 논쟁을 포함한다면요?
의 값을 포함하는 경우(으로 빌컨스 일값포경는우하함로으을반적의트.
둘 이상의 인수를 통과했을 수 있습니다. 오류 메시지가 계속 표시됩니다.일반적으로 플래그를 구문 분석하지 못하거나 따옴표 없이 공백으로 문자열을 전달한 경우에 발생합니다.도커에 둘 이상의 인수가 표시될 수 있는 원인은 다음과 같습니다.
공백이 있는 경로 또는 인수 주위에 따옴표가 없습니다(공백이 있을 수 있는 변수를 사용하여 참고).
명령에 잘못된 대시가 있습니다. 복사하여 붙여넣기보다는 수동으로 입력하십시오.
잘못된 따옴표: 스마트 따옴표는 명령줄에서 작동하지 않습니다. 복사하여 붙여넣기 대신 수동으로 입력하십시오.
공백이 아니거나 공백이 아닌 공백입니다.
이들 대부분은 텍스트를 예쁘게 보이도록 수정하여 명령어로 사용하기 위해 텍스트를 부수는 소스의 오타 또는 복사 및 붙여넣기에서 발생합니다.
CLI 오류가 어디에 있는지 어떻게 알 수 있습니까?
이것을 디버깅하는 가장 쉬운 방법은 다른 플래그 없이 명령을 실행하는 것입니다.
docker build .
이 기능이 작동하면 오류가 발생할 때까지 플래그를 다시 추가하면 어떤 플래그가 손상되었는지, 따옴표를 수정/추가하거나 대시를 수정해야 하는지 등을 알 수 있습니다.
이전 버전의 도커에서는 다음 순서를 사용해야 할 것 같습니다.
docker build -t tag .
그리고 아닌
docker build . -t tag
기본적으로 도커 파일이라는 이름의 도커 파일에서 도커 이미지를 빌드할 수 있습니다.도커 컨테이너에 필요한 명령/명령 집합이 있습니다.아래 명령은 태그가 가장 최근인 이미지를 생성합니다. 도커 파일은 해당 위치에 있어야 합니다. (.는 현재 디렉터리를 의미합니다.
docker build . -t <image_name>:latest
파일 이름이 기본값(도커 파일)이 아닌 경우 -f를 통해 도커 파일을 지정할 수 있습니다.
FROM busybox
RUN echo "hello world"
PowerShell을 열고 다음 지침을 따릅니다.이러한 유형의 오류는 일반적으로 Windows S.O에 있습니다.명령 빌드를 사용할 때는 옵션과 경로가 필요합니다.
도커 파일의 경로를 지정하지 않았기 때문에 이러한 유형의 오류가 있습니다.
사용해 보십시오.
C:\Users\Daniele\app> docker build -t friendlyhello C:\Users\Daniele\app\
- friendly hello는 당신이 당신의 경쟁자에게 할당한 이름입니다.
- C:\Users\Daniele\app\는 도커 파일을 포함하는 경로입니다.
태그를 추가하려면
C:\Users\Daniele\app> docker build -t friendlyhello:3.0 C:\Users\Daniele\app\
다음 명령이 저에게 효과가 있었습니다.도커 파일이 my-app-master 폴더에 있습니다.
도커 빌드 -f my-app-master/도커 파일 -t my-app-master.
제 문제는 도커 파일이었습니다.txt를 유닉스 실행 파일로 변환해야 했습니다.일단 제가 그렇게 하자 그 오류는 사라졌습니다.
이 작업을 수행하기 전에 .txt 부분을 제거해야 할 수도 있지만, Mac에서는 터미널로 이동하여 Docker 파일이 있는 디렉토리와 유형으로 CD를 저장합니다.
chmod +x "Dockerfile"
그런 다음 파일을 유닉스 실행 파일로 변환하여 도커 빌드 명령으로 실행할 수 있습니다.
#Using a file other than Dockerfile instead.
#Supose my file is `Dockerfile-dev`
docker build -t mytag - < Dockerfile-dev
저의 경우, 저는 t 옵션이 문제가 되기 전에 대시(약간 긴 하이픈) 기호를 사용했습니다.
docker build –t simple-node .
하이픈/마이너스 기호로 대체합니다.
docker build -t simple-node .
파이프라인 스크립트 내에서 Jenkins 파이프라인과 함께 Docker를 사용할 때 이 오류가 발생했습니다.솔루션은 파이프라인 스크립트에서 다음 구문을 사용하는 것이었습니다.
docker.build("[my_docker_image_tag]", "-f ./path/to/my/Dockerfile.jvm .")
도커 빌드 명령 형식
전원 셸에서: 도커 파일로 경로를 지정하지 않았기 때문에 이러한 유형의 오류가 있습니다.
사용해 보십시오.
$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt
friendly hello는 컨테이너에 할당하고 버전을 추가하는 이름입니다. 그냥 :hello를 사용하세요.
-f C:\TestDockerApp\Docker 파일입니다.txt - 빌드 명령에 매개 변수 또는 태그가 필요하기 때문에 태그를 추가하려는 경우 - DockerFile은 텍스트 문서이므로 .txt 확장자를 명시적으로 추가합니다.
**다음 형식을 사용해 보십시오.
$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt .**
언급URL : https://stackoverflow.com/questions/28996907/docker-build-requires-1-argument-see-docker-build-help
'programing' 카테고리의 다른 글
Git 분리된 HEAD가 있는 분기 생성 (0) | 2023.09.03 |
---|---|
빠른 운동장을 사용하여 콘솔에 인쇄하는 방법은 무엇입니까? (0) | 2023.09.03 |
CSS에서 정규 표현을 사용합니까? (0) | 2023.09.03 |
마리아에서 두 표의 데이터를 사용하여 계산된 열 생성DB (0) | 2023.09.03 |
AppCompat-v7이 있는 도구 모음 및 상황별 수행 표시줄 (0) | 2023.08.14 |