Took me a while to get that done.
I assume here you want to build a image where the resulting container is running caddy.
Versions in use:
OS: Debian trixie
incus: 6.19.1
podman: 5.4.2
Prepare incus metadata
Add docker.io as remote
incus remote add docker.io --protocol oci https://docker.io
Copy the image
incus image copy docker.io:caddy:2.11-alpine local: --alias caddy/2.11-alpine
Export the upstream image
incus image export caddy/2.11-alpine caddy-incus.tar
Extract Metadata
mkdir caddy-metadata
cd caddy-metadata
tar xf ../caddy-incus.tar
Add properties to metadata.yaml
Make it to look like this where "properties.type": "oci" is the important part
{
"architecture":"x86_64",
"creation_date":1766018662,
"expiry_date":0,
"properties": {
"type": "oci",
"description": "my caddy (OCI)",
},
"templates":null
}
Create a tar out of the patched metadata
tar cf ../caddy-metadata.tar *
cd ..
Build the image with podman
podman build ./dir-with-a-dockerfile/ --output "type=tar,dest=caddy-rootfs.tar"
Import
incus image import caddy-metadata.tar caddy-rootfs.tar --alias my-caddy --reuse
Launch it
incus launch my-caddy my-cady
incus console --show-log my-caddy