I have opened this issue, which is very similar to: #1977 as unfortunately it does not seem to be fully resolved in certain situations.
Using bootc 1.16.4 the following error occurs when trying to use bootc ukify:
DEBUG argv0="bootc"
error: Building UKI: Computing composefs digest: Reading container root: Reading container root: Ensuring object from file descriptor: Ensuring object from reader: Creating object tmpfile: Opening temp file in objects directory: Operation not supported (os error 95)
subprocess exited with status 1
subprocess exited with status 1
This is triggered by: https://github.com/composefs/composefs-rs/blob/67ea2f8c56725bb342bf712127baec5a7b6efbe5/crates/composefs/src/repository.rs#L1677
It might be its not possible to do this without O_TMPFILE support, but since it was resolved in the other issue, I was hoping this might be resolvable in a similar way.
Temporary (or not if this isn't resolvable) Workaround for Gitlab CI:
Since Gitlab CI has some of the CI environment on overlayfs and some (including your build folder) on normal ext4, it is possible to use --volume for podman build to put /var/tmp directly on ext4 instead of overlay.
Example:
- Create
tmp folder in your build context folder (and a README.md or something so the folder is created on git checkout)
- Add something like this to
.gitignore (only really needed if you commit back during CI):
- Add a
.containerignore file with tmp (prevents inflating build context)
- Add
--volume=${CI_PROJECT_DIR}/tmp:/var/tmp to your podman build
I have opened this issue, which is very similar to: #1977 as unfortunately it does not seem to be fully resolved in certain situations.
Using bootc 1.16.4 the following error occurs when trying to use
bootc ukify:This is triggered by: https://github.com/composefs/composefs-rs/blob/67ea2f8c56725bb342bf712127baec5a7b6efbe5/crates/composefs/src/repository.rs#L1677
It might be its not possible to do this without O_TMPFILE support, but since it was resolved in the other issue, I was hoping this might be resolvable in a similar way.
Temporary (or not if this isn't resolvable) Workaround for Gitlab CI:
Since Gitlab CI has some of the CI environment on overlayfs and some (including your build folder) on normal ext4, it is possible to use
--volumeforpodman buildto put/var/tmpdirectly on ext4 instead of overlay.Example:
tmpfolder in your build context folder (and aREADME.mdor something so the folder is created on git checkout).gitignore(only really needed if you commit back during CI):.containerignorefile withtmp(prevents inflating build context)--volume=${CI_PROJECT_DIR}/tmp:/var/tmpto yourpodman build