失敗をデバッグしたいが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
すでに他のユーザーが見た場合成功また、この方法を使用してください。一部の人に効果があると思われるもう1つの提案は、次の環境変数を追加することです/etc/sysconfig/docker
。
BUILDKIT_STEP_LOG_MAX_SIZE=10000000
BUILDKIT_STEP_LOG_MAX_SPEED=10000000
理論的には源泉、各変数の値を使用するとすべての制限を削除することができますが-1
、他のユーザーによると結果がずれます。