j0rge
1
Use a Fedora Silverblue virtual machine to test your changes locally or host your own.
On local host
-
Create /etc/containers/registries.conf.d/local.conf
with:
[[registry]]
location = "localhost:5000"
insecure = true
-
Run a local registry
podman run -d -p 5000:5000 --restart=always --name registry registry:2
-
Build
podman build . -t <name>
For startingpoint forks:
podman build . --build-arg=FEDORA_MAJOR_VERSION=<fedora-version> --build-arg=BASE_IMAGE_URL=<base-image> --build-arg=RECIPE=./recipe.yml -t <name>
Fill the build-arg
s from your recipe, e.g. fedora-version
= latest, base-image
= Package silverblue-main · GitHub.
-
Push image
podman push localhost/<name>:latest localhost:5000/<name>:latest
Running off a local tarball
podman build -t oci-archive:/var/home/$USER/container.tar.gz .
rpm-ostree rebase ostree-unverified-image:oci-archive:/var/home/$USER/container.tar.gz
In VM
-
Create /etc/containers/registries.conf.d/local.conf
with:
[[registry]]
location = "<host IP>:5000"
insecure = true
-
Rebase
rpm-ostree rebase --reboot ostree-unverified-registry:<host IP>:5000/<name>:latest
-
Upgrade
After rebasing once, just upgrade after pushing a new version with the same image name:
rpm-ostree upgrade --reboot
Host Your Own
Help wanted! We have a dormant set up for hosting your own on-prem ublue called Forge. We’re looking for volunteers to help revive it.
If you have any good setups for transparent registries or any other associated tooling please consider contributing them!
til: podman can build to a local oci-archive tar ball!
As mentioned in Self hosters, the forge needs your eyes and hands! the forge was heated up again after a longer break.
Here an example screen-cast on how to clone and build bluefin in the forge:
And build the image:
Start building process
During building process
End of building process
In this case the build failed because of
error: Could not depsolve transaction; 1 problem detected:
Problem: package kernel-uki-virt-6.8.8-300.fc40.x86_64 from updates-archive requires kernel-modules-core-uname-r = 6.8.8-300.fc40.x86_64, but none of the providers can be installed
- package kmod-evdi-6.8.8-300.fc40.x86_64-1.14.4-1.fc40.x86_64 from @commandline requires kernel-uname-r = 6.8.8-300.fc40.x86_64, but none of the providers can be installed
- cannot install both kernel-modules-core-6.8.8-300.fc40.x86_64 from updates-archive and kernel-modules-core-6.8.7-300.fc40.x86_64 from @System
- cannot install both kernel-core-6.8.8-300.fc40.x86_64 from updates-archive and kernel-core-6.8.7-300.fc40.x86_64 from @System
- conflicting requests
Error: building at STEP "RUN rpm-ostree cliwrap install-to-root / && mkdir -p /tmp/mediatek-firmware && curl -Lo /tmp/mediatek-firmware/WIFI_MT7922_patch_mcu_1_1_hdr.bin https://gitlab.com/kernel-firmware/linux-firmware/-/raw/8f08053b2a7474e210b03dbc2b4ba59afbe98802/mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin?inline=false && curl -Lo /tmp/mediatek-firmware/WIFI_RAM_CODE_MT7922_1.bin https://gitlab.com/kernel-firmware/linux-firmware/-/raw/8f08053b2a7474e210b03dbc2b4ba59afbe98802/mediatek/WIFI_RAM_CODE_MT7922_1.bin?inline=false && xz --check=crc32 /tmp/mediatek-firmware/WIFI_MT7922_patch_mcu_1_1_hdr.bin && xz --check=crc32 /tmp/mediatek-firmware/WIFI_RAM_CODE_MT7922_1.bin && mv -vf /tmp/mediatek-firmware/* /usr/lib/firmware/mediatek/ && rm -rf /tmp/mediatek-firmware && bash -c ". /tmp/build/build-base.sh" && rm -rf /tmp/* /var/* && mkdir -p /var/tmp && chmod -R 1777 /var/tmp && ostree container commit": while running runtime: exit status 1
So I have to investigate that. But I think it’s enough to showcase how one could use the forge at the moment.
When the image builds successfully it will be available at: registry.ublue.local:bluefin:latest
1 Like