전체 Docker Compose 빌드 로그를 보는 방법은 무엇입니까? daemon.json은 무시됩니다.

전체 Docker Compose 빌드 로그를 보는 방법은 무엇입니까? daemon.json은 무시됩니다.

실패를 디버깅하고 싶지만 docker compose build --no-cache(캐시에서 성공) 로그 제한으로 인해 실패 이유를 볼 수 없고 메시지만 볼 수 있습니다 output clipped, log limit 1MiB reached.

Docker 문서에 따르면 다음을 만들었습니다 /etc/docker/daemon.json.

{
  "features": { "buildkit": true },
  "log-driver": "local",
  "log-opts": 
  {
    "max-size": "100m",
    "max-file": "3"
  }
}

그 후에는 다음과 systemctl docker restart같이 docker info표시됩니다.

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.8.2-docker)
  compose: Docker Compose (Docker Inc., 2.6.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.17
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: false
  userxattr: false
 Logging Driver: local
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1.m
 runc version: 
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.18.5-arch1-1
 Operating System: Arch Linux
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 15.41GiB
 Name: konradspc
 ID: 6NFV:RQP7:V6XK:7D6Z:W2LC:LPGR:HQBQ:V55P:BECL:WXPP:YPC5:2QQ2
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

이전에는 로깅 드라이버가 "json-file" 대신 "local"로 표시되므로 Docker가 성공적으로 로드되는 것처럼 보입니다 /etc/docker/daemon.json.

그러나 docker compose build --no-cache다시 실행해도 여전히 메시지가 나타납니다 output clipped, log limit 1MiB reached.

이것을 어떻게 docker compose무시할 수 없나요 daemon.json? 아니면 전체 빌드 로그에 액세스할 수 있는 다른 방법이 있나요?

저는 커널 5.18.5가 설치된 Arch Linux에서 Docker 버전 20.10.17, 빌드 100c70180f, Docker Compose 버전 2.6.0 및 BuildKit을 사용하고 있습니다. 빌드는 --mount=type=cache,target=/root/.m2Maven 종속성을 캐시 하는 데 사용되므로 BuildKit을 비활성화할 수 없습니다 .

답변1

~에 따르면이 스레드, 해결 방법은 buildkit빌드를 비활성화하여 이 로깅 제한을 우회하는 것입니다.

DOCKER_BUILDKIT=0 docker compose build --no-cache

이미 다른 사용자가 본 경우성공또한 이 방법을 사용하세요. 몇몇 사람들에게 효과가 있었던 것으로 보이는 또 다른 제안은 다음 환경 변수를 추가하는 것입니다 /etc/sysconfig/docker.

BUILDKIT_STEP_LOG_MAX_SIZE=10000000
BUILDKIT_STEP_LOG_MAX_SPEED=10000000

이론적으로는원천, 각 변수의 값을 이용하면 모든 제한을 제거할 수 있지만 -1, 다른 사용자에 따르면 결과가 엇갈린다.

관련 정보