summaryrefslogtreecommitdiffstats
path: root/recipes-containers/vcontainer
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2026-01-23 22:32:07 -0500
committerBruce Ashfield <bruce.ashfield@gmail.com>2026-02-09 03:34:12 +0000
commit5063d6f0e9e25a8bde17bd3b89ee3f0f88b5f85b (patch)
tree0caa4921b9924421563fe49fc288ca13ef4b8aa2 /recipes-containers/vcontainer
parent1d53c86794b202bb9f42eb45f476ab08208ca8d8 (diff)
downloadmeta-virtualization-5063d6f0e9e25a8bde17bd3b89ee3f0f88b5f85b.tar.gz
vdkr-init: improve Docker daemon startup logging and error handling
Improve debugging capabilities when Docker daemon fails to start: - Log dockerd output to /var/log/docker.log instead of /dev/null - Capture docker info exit code and output for diagnostics - Show docker info error on every 10th iteration while waiting - Include last docker info output and docker.log tail on failure - Extend sleep on failure from 2s to 5s for log review Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-containers/vcontainer')
-rwxr-xr-xrecipes-containers/vcontainer/files/vdkr-init.sh22
1 files changed, 17 insertions, 5 deletions
diff --git a/recipes-containers/vcontainer/files/vdkr-init.sh b/recipes-containers/vcontainer/files/vdkr-init.sh
index 67465138..084a8791 100755
--- a/recipes-containers/vcontainer/files/vdkr-init.sh
+++ b/recipes-containers/vcontainer/files/vdkr-init.sh
@@ -171,7 +171,7 @@ start_dockerd() {
171 DOCKER_OPTS="$DOCKER_OPTS --containerd=/run/containerd/containerd.sock" 171 DOCKER_OPTS="$DOCKER_OPTS --containerd=/run/containerd/containerd.sock"
172 fi 172 fi
173 173
174 /usr/bin/dockerd $DOCKER_OPTS >/dev/null 2>&1 & 174 /usr/bin/dockerd $DOCKER_OPTS >/var/log/docker.log 2>&1 &
175 DOCKER_PID=$! 175 DOCKER_PID=$!
176 log "Docker daemon started (PID: $DOCKER_PID)" 176 log "Docker daemon started (PID: $DOCKER_PID)"
177 177
@@ -185,26 +185,38 @@ start_dockerd() {
185 if ! kill -0 $DOCKER_PID 2>/dev/null; then 185 if ! kill -0 $DOCKER_PID 2>/dev/null; then
186 echo "===ERROR===" 186 echo "===ERROR==="
187 echo "Docker daemon died after $i iterations" 187 echo "Docker daemon died after $i iterations"
188 echo "Docker log:"
188 cat /var/log/docker.log 2>/dev/null || true 189 cat /var/log/docker.log 2>/dev/null || true
189 dmesg | tail -20 2>/dev/null || true 190 dmesg | tail -20 2>/dev/null || true
190 sleep 2 191 sleep 2
191 reboot -f 192 reboot -f
192 fi 193 fi
193 194
194 if /usr/bin/docker info >/dev/null 2>&1; then 195 # Try docker info and capture any error
196 DOCKER_INFO_OUT=$(/usr/bin/docker info 2>&1)
197 DOCKER_INFO_RC=$?
198 if [ $DOCKER_INFO_RC -eq 0 ]; then
195 log "Docker daemon is ready!" 199 log "Docker daemon is ready!"
196 DOCKER_READY=true 200 DOCKER_READY=true
197 break 201 break
198 fi 202 fi
199 203
200 log "Waiting... ($i/60)" 204 log "Waiting... ($i/60) - docker info rc=$DOCKER_INFO_RC"
205 # Show first line of error on every 10th iteration
206 if [ $((i % 10)) -eq 0 ]; then
207 echo "docker info error: $(echo "$DOCKER_INFO_OUT" | head -1)"
208 fi
201 sleep 2 209 sleep 2
202 done 210 done
203 211
204 if [ "$DOCKER_READY" != "true" ]; then 212 if [ "$DOCKER_READY" != "true" ]; then
205 echo "===ERROR===" 213 echo "===ERROR==="
206 echo "Docker failed to start" 214 echo "Docker failed to start after 60 attempts"
207 sleep 2 215 echo "Last docker info output:"
216 echo "$DOCKER_INFO_OUT" | head -5
217 echo "Docker log tail:"
218 tail -20 /var/log/docker.log 2>/dev/null || true
219 sleep 5
208 reboot -f 220 reboot -f
209 fi 221 fi
210} 222}