여러 인수가 있는 docker build 명령
docker build
명령을 사용하면 Dockerfile에서 Docker 이미지를 만들 수 있습니다. 또한 PATH 또는 URL로 지정된 위치에 있는 파일 세트를 참조하는 컨텍스트에서 이미지를 빌드할 수 있습니다.
반면에 Dockerfile은 Docker 이미지를 어셈블할 때 호출될 지침이 포함된 읽기 전용 텍스트 문서입니다. Docker 이미지는 Docker 컨테이너를 빌드하는 데 사용하는 명령 세트, 애플리케이션 코드, 종속성, 도구 및 라이브러리입니다.
이 튜토리얼은 docker build
명령과 여러 인수를 사용하는 방법을 보여줍니다.
여러 인수가 있는 docker build
명령
docker build
명령은 일반적으로 터미널 또는 명령줄에서 실행됩니다.
통사론:
docker build [options] <directory path or URL>
PATH 또는 URL은 사전 패키징된 tarball 컨텍스트, 일반 텍스트 파일 또는 git 저장소와 같은 리소스를 포함할 수 있는 컨텍스트의 파일 세트를 나타냅니다. 모든 파일이 로컬 디렉토리, 즉 Dockerfile과 동일한 디렉토리에 저장된 경우 .
를 사용하도록 선택할 수 있습니다. 경로로.
이 경로는 도커 데몬의 빌드 컨텍스트에 사용되는 파일을 지정합니다.
docker build .
옵션 매개변수에서 빌드 시간 동안 여러 인수를 전달할 수 있습니다. –build-arg
태그를 사용하여 사용자가 빌드 시 설정할 수 있는 값을 설정할 수 있습니다.
그러나 --build-arg
태그를 사용하여 이미지를 빌드하기 전에 먼저 Dockerfile에서 ARG
명령어를 정의해야 합니다. 일반 환경 변수처럼 이 빌드 시간 변수에 액세스할 수 있습니다. 그러나 이미지를 빌드한 후에는 지속되지 않습니다.
ARG 명령어의 범위는 제한되어 있지만 기본 이미지를 지정하기 전에 선언할 수 있습니다. 별도의 --build-arg
태그를 사용하여 각 인수를 별도로 전달하여 여러 빌드 인수를 전달할 수도 있습니다.
통사론:
docker build -t <image-name>:<tag> --build-arg <key1>=<value1> --build-arg <key2>=<value2> .
다음 예에서 일부 ARG
값을 정의하는 간단한 Dockerfile이 있습니다. 이 경우 기본값을 설정하지 않았습니다.
Docker 파일은 아래와 같이 보입니다.
# base image
FROM python
ARG language
ARG name
# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
RUN echo "Hello $language Developer"
MAINTAINER Isaac Tonyloi
따라서 이미지를 빌드할 때 -build-arg
태그를 사용하여 값을 전달해야 합니다.
~/my-app$ docker build --build-arg language=Java .
위의 명령을 사용하여 이미지를 빌드하면 아래와 같이 Hello Java Developer
메시지가 다른 파일과 함께 인쇄됩니다.
0.0s
=> [5/6] RUN pip install -r /var/www/requirements.txt 100.4s
=> [6/6] RUN echo "Hello Java Developer" 4.4s
=> exporting to image 3.8s
=> => exporting layers 2.8s
=> => writing image sha256:22fa358b711d2ea3a1d72e59f062f6c7c38b414bdb253fb8d0def20222cadd93
여러 --build-arg
태그를 사용하여 여러 명령과 함께 docker build
를 사용할 수도 있습니다.
/my-app$ docker build \
> --build-arg language=Java \
> --build-arg name=Tonyloi \
> .
그러면 아래에 다른 메시지와 함께 메시지가 인쇄됩니다. 이것은 매우 기본적이지만 Dockerfile에서 Docker 이미지를 빌드할 때 여러 명령을 전달할 수 있는 방법입니다.
출력:
=> [2/2] RUN echo "Hello Java Developer and my name is Tonyloi" 3.3s
=> exporting to image 3.0s
=> => exporting layers 2.0s
=> => writing image sha256:d4d7c3b18aa9422be2990f5381a5423a18867dda8090dd4a4f166efc4e7c4ba2
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn