# This is the Containerfile for your custom image. # Instead of adding RUN statements here, you should consider creating a script # in `config/scripts/`. Read more in `modules/script/README.md` # It takes in the recipe, version, and base image as arguments, # all of which are provided by build.yml when doing builds # in the cloud. The ARGs have default values, but changing those # does nothing if the image is built in the cloud. ARG IMAGE_MAJOR_VERSION=38 # Warning: changing this might not do anything for you. Read comment above. ARG BASE_IMAGE_URL=ghcr.io/ublue-os/silverblue-main FROM ${BASE_IMAGE_URL}:${IMAGE_MAJOR_VERSION} # The default recipe set to the recipe's default filename # so that `podman build` should just work for many people. ARG RECIPE=recipe.yml # The default image registry to write to policy.json and cosign.yaml ARG IMAGE_REGISTRY=ghcr.io/ublue-os COPY cosign.pub /usr/share/ublue-os/cosign.pub COPY config /tmp/config # Copy the bling from ublue-os/bling into tmp, to be installed later by the bling module # Feel free to remove these lines if you want to speed up image builds and don't want any bling COPY --from=ghcr.io/ublue-os/bling:latest /rpms /tmp/bling/rpms COPY --from=ghcr.io/ublue-os/bling:latest /files /tmp/bling/files # "yq" used in build.sh and the "setup-flatpaks" just-action to read recipe.yml. # Copied from the official container image since it's not available as an RPM. COPY --from=docker.io/mikefarah/yq /usr/bin/yq /usr/bin/yq # Copy build script; this is what parses your recipe COPY build.sh /tmp/build.sh # Copy modules to a temporary directory, they'll only to be executed during the build COPY modules /tmp/modules/ # Run the build script, then clean up temp files and finalize container build. RUN chmod +x /tmp/build.sh && /tmp/build.sh && \ rm -rf /tmp/* /var/* && ostree container commit