79 lines
2.8 KiB
Text
79 lines
2.8 KiB
Text
include::_partials/attributes.adoc[]
|
|
|
|
== Release the Fedora Container Base Image
|
|
|
|
=== Description
|
|
|
|
This SOP covers the steps involved in changing and releasing the Fedora
|
|
Container Base image.
|
|
|
|
Fedora releases 2 container base images, [.title-ref]#fedora# and
|
|
[.title-ref]#fedora-minimal#. These images are available on 3 registries
|
|
[.title-ref]#registry.fedoraproject.org#, [.title-ref]#quay.io# and
|
|
[.title-ref]#DockerHub# (fedora-minimal is not available in DockerHub).
|
|
|
|
==== Modify a base image (Kickstart)
|
|
|
|
Base images are built in koji using the [.title-ref]#image-factory#
|
|
application to build the container image root filesystem (rootfs).
|
|
Kickstart files are used to configure how the image is built and what is
|
|
available in the image The solution consist of 3 Kickstarts.
|
|
|
|
https://pagure.io/fedora-kickstarts/blob/main/f/fedora-container-common.ks[fedora-container-common]
|
|
|
|
https://pagure.io/fedora-kickstarts/blob/main/f/fedora-container-base.ks[fedora-container-base]
|
|
|
|
https://pagure.io/fedora-kickstarts/blob/main/f/fedora-container-base-minimal.ks[fedora-container-base-minimal]
|
|
|
|
Changes made on the rawhide branch will results in the rawhide image,
|
|
other branches (f{current}, f{old_release}) should be used to modify other releases.
|
|
|
|
==== Compose Configuration (Pungi)
|
|
|
|
The configuration used to compose the container images is available in
|
|
the pungi-fedora repository.
|
|
|
|
For rawhide the configuration is in
|
|
|
|
https://pagure.io/pungi-fedora/blob/main/f/fedora.conf
|
|
|
|
While for other releases the configuration is in a dedicated file
|
|
|
|
https://pagure.io/pungi-fedora/blob/f31/f/fedora-container.conf
|
|
|
|
==== Release on registry.fedoraproject.org and quay.io
|
|
|
|
If you want to release the base image on registry.fp.o and quay.io you
|
|
can use the following script.
|
|
|
|
https://pagure.io/releng/blob/main/f/scripts/sync-latest-container-base-image.sh[sync-latest-container-base-image.sh]
|
|
|
|
You will need to run that script from on of the releng composer machines
|
|
in the infrastructure in order to have the credentials.
|
|
|
|
If you do not have access to that machines, you can request the release
|
|
by opening a ticket on the https://pagure.io/releng/issues[releng
|
|
tracker].
|
|
|
|
The script can then be executed as follow
|
|
|
|
[source,subs="attributes+"]
|
|
....
|
|
$./sync-latest-container-base-image.sh {current}
|
|
$./sync-latest-container-base-image.sh {branched}
|
|
....
|
|
|
|
This will take care of pushing the [.title-ref]#fedora# and
|
|
[.title-ref]#fedora-minimal# images to both registries.
|
|
|
|
==== Release on DockerHub
|
|
|
|
Releasing on DockerHub is a little different since Fedora is an
|
|
"offical" image there. In order to release new images there we have to
|
|
update a Dockerfile and rootfs tarball on the following repo.
|
|
|
|
https://github.com/fedora-cloud/docker-brew-fedora[docker-brew-fedora].
|
|
|
|
For the details on how to run the script please see
|
|
|
|
https://github.com/fedora-cloud/docker-brew-fedora/blob/main/README.md[README].
|