실패를 디버깅하고 싶지만 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/.m2
Maven 종속성을 캐시 하는 데 사용되므로 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
, 다른 사용자에 따르면 결과가 엇갈린다.