summaryrefslogtreecommitdiffstats
path: root/recipes-containers/vcontainer/README.md
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2026-04-12 23:53:20 +0000
committerBruce Ashfield <bruce.ashfield@gmail.com>2026-04-13 01:08:31 +0000
commit4e6c583591c1da7e898254dd33eca5cc04c739a9 (patch)
treedae6aaaaac486a428089bf612adbade2c3aec29b /recipes-containers/vcontainer/README.md
parent168afc8354c12bce93f4f916e87580e01ea83f4d (diff)
downloadmeta-virtualization-4e6c583591c1da7e898254dd33eca5cc04c739a9.tar.gz
vcontainer: fix registry login and TLS certificate chain
vcontainer-common.sh: - Fix docker/podman login hanging silently in daemon mode. The login command requires interactive stdin for the password prompt, which the non-interactive daemon-send channel cannot provide. Use daemon-interactive mode (same as vshell/exec -it) which provides TTY passthrough via the virtio-serial + socat + expect channel. ca-certificates bbappend: - Add Let's Encrypt E8 (ECDSA) and R11 (RSA) intermediate certificates via a ca-certificates bbappend. Certs are fetched at build time from letsencrypt.org and installed into the standard CA certificate path. update-ca-certificates incorporates them into the system CA bundle. - Some registries (e.g., registry.yocto.io) don't send the full certificate chain, causing TLS verification to fail with Go programs (Docker, skopeo, podman) even though the root CAs are present. vdkr-rootfs-image.bb: - Add ca-certificates to IMAGE_INSTALL Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-containers/vcontainer/README.md')
-rw-r--r--recipes-containers/vcontainer/README.md49
1 files changed, 49 insertions, 0 deletions
diff --git a/recipes-containers/vcontainer/README.md b/recipes-containers/vcontainer/README.md
index 76d54d18..657dd02e 100644
--- a/recipes-containers/vcontainer/README.md
+++ b/recipes-containers/vcontainer/README.md
@@ -268,6 +268,55 @@ vdkr pull alpine:latest
268vdkr images # Shows alpine:latest 268vdkr images # Shows alpine:latest
269``` 269```
270 270
271## Registry Login and Configuration
272
273For authenticated registries:
274
275```bash
276# Login (interactive password prompt)
277vdkr login --username myuser https://registry.example.com/
278
279# Pull from the registry
280vdkr pull registry.example.com/myimage:latest
281```
282
283Set a default registry so you don't need to specify the full URL each time:
284
285```bash
286# Set default registry (persisted across sessions)
287vdkr vconfig registry registry.example.com
288
289# Now pulls try the default registry first, then Docker Hub
290vdkr pull myimage:latest
291
292# One-off override without changing the default
293vdkr --registry other.registry.com pull myimage:latest
294
295# Clear default registry
296vdkr vconfig registry --reset
297```
298
299**Note:** The `--registry` flag is a vdkr option that sets the default
300registry for pulls. For `login`, pass the registry URL as a positional
301argument after the login flags:
302
303```bash
304# Correct:
305vdkr login --username myuser https://registry.example.com/
306
307# Wrong (--registry is consumed by vdkr, login gets no URL):
308vdkr --registry https://registry.example.com/ login --username myuser
309```
310
311**TLS certificates:** The vdkr/vpdmn rootfs images include common
312intermediate certificates (Let's Encrypt E8/R11) to handle registries
313that don't send the full certificate chain. For self-signed registries,
314use `--secure-registry --ca-cert`:
315
316```bash
317vdkr --secure-registry --ca-cert /path/to/ca.crt pull myimage
318```
319
271## Volume Mounts 320## Volume Mounts
272 321
273Mount host directories into containers using `-v` (requires memory resident mode): 322Mount host directories into containers using `-v` (requires memory resident mode):