이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

Docker 빌드 경고 줄이기

다음은 Dockerfile 빌드 시 나타날 수 있는 경고를 제거하기 위한 몇 가지 팁입니다.

debconf: apt-utils가 설치되지 않아 패키지 구성을 지연합니다.

이 오류는 일반적으로 안전하게 무시할 수 있으며 완전히 제거하기 어렵습니다. 하지만 Dockerfile에 다음을 추가하여 필요한 패키지를 설치할 때 표준 출력으로 메시지를 하나만 표시하도록 줄일 수 있습니다.

RUN apt-get update \
    && export DEBIAN_FRONTEND=noninteractive \
    && apt-get -y install --no-install-recommends apt-utils dialog 2>&1

경고: apt-key 출력은 구문 분석하면 안 됩니다(표준 출력이 터미널이 아님).

이 중요하지 않은 경고는 apt-key 출력을 구문 분석하지 말라고 알려주므로 스크립트가 구문 분석하지 않는 한 문제가 없습니다. 안전하게 무시할 수 있습니다.

이것은 apt-key 명령이 터미널에서 실행되지 않기 때문에 Dockerfile에서 발생합니다. 안타깝게도 이 오류는 완전히 제거할 수는 없지만 apt-key 명령이 0이 아닌 종료 코드(실패를 나타냄)를 반환하는 경우를 제외하고는 숨길 수 있습니다.

예를 들어,

# (OUT=$(apt-key add - 2>&1) || echo $OUT) will only print the output with non-zero exit code is hit
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | (OUT=$(apt-key add - 2>&1) || echo $OUT)

APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE 환경 변수를 설정하여 경고를 억제할 수도 있지만, 조금 무서워 보이므로 사용하는 경우 Dockerfile에 주석을 추가하여 반드시 명시하세요.

# Suppress an apt-key warning about standard out not being a terminal. Use in this script is safe.
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn

빨간색으로 표시되는 정보 메시지

일부 CLI는 디버그 세부 정보와 같은 특정 정보를 표준 출력 대신 표준 오류로 출력합니다. Visual Studio Code의 터미널 및 출력 로그에 빨간색으로 표시됩니다.

메시지가 무해한 경우 명령의 출력을 표준 오류에서 표준 출력으로 리디렉션하여 명령 끝에 2>&1을 추가할 수 있습니다.

예를 들어,

RUN apt-get -y install --no-install-recommends apt-utils dialog 2>&1

명령이 실패하면 여전히 오류를 볼 수 있지만 빨간색으로 표시되지는 않습니다.

Docker로 빌드된 이미지의 문제 방지

Dockerfile 및 Docker Compose 파일을 VS Code 또는 devcontainer CLI 없이 사용할 수 있으므로, 예상대로 작동하지 않을 경우 사용자가 이미지를 직접 빌드하려고 시도하지 않도록 알리고 싶을 수 있습니다. 이 문제를 해결하려면 작동하도록 지정해야 하는 빌드 인수를 추가할 수 있습니다.

예를 들어 Dockerfile에 다음을 추가할 수 있습니다.

ARG vscode
RUN if [[ -z "$devcontainercli" ]] ; then printf "\nERROR: This Dockerfile needs to be built with VS Code !" && exit 1; else printf "VS Code is detected: $devcontainercli"; fi

그리고 devcontainer.json에 다음을 추가합니다.

"build": {
      "dockerfile": "Dockerfile",
      "args": {
          // set devcontainer-cli arg for Dockerfile
          "devcontainercli": "true"
      },
    }

Docker Compose의 경우, 기본 Docker Compose 파일과 다른 위치에 있는 별도의 구성 확장을 위한 오버라이드 파일에 이 인수를 추가할 수 있습니다.

© . This site is unofficial and not affiliated with Microsoft.