ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-silverblue}" ARG BASE_IMAGE="quay.io/fedora-ostree-desktops/${IMAGE_FLAVOR}" ARG FEDORA_VERSION="${FEDORA_VERSION:-39}" FROM ghcr.io/getchoo/config:${FEDORA_VERSION} as config FROM ${BASE_IMAGE}:${FEDORA_VERSION} ARG FEDORA_VERSION COPY initial_setup.sh /usr/bin/ COPY packages.yaml /tmp/ COPY --from=docker.io/mikefarah/yq /usr/bin/yq /tmp/ # remove non-flatpak firefox RUN rpm-ostree override remove firefox firefox-langpacks # setup third party repos RUN rpm-ostree install \ https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VERSION}.noarch.rpm \ https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VERSION}.noarch.rpm # install software/hardware codecs RUN rpm-ostree override remove \ mesa-va-drivers \ libavcodec-free \ libavfilter-free \ libavformat-free \ libavutil-free \ libpostproc-free \ libswresample-free \ libswscale-free && \ rpm-ostree install \ mesa-va-drivers-freeworld \ mesa-vdpau-drivers-freeworld \ gstreamer1-plugin-libav \ gstreamer1-plugins-bad-free-extras \ gstreamer1-plugins-bad-freeworld \ gstreamer1-plugins-ugly \ gstreamer1-vaapi \ ffmpeg # install third party packages & repos COPY vscode.repo /etc/yum.repos.d/ RUN cd /etc/yum.repos.d/ && \ curl -LO https://pkgs.tailscale.com/stable/fedora/tailscale.repo && \ rpm-ostree install code tailscale && \ systemctl enable tailscaled # install fedora rpms RUN readarray -td '' pkgs < <(/tmp/yq '.install[]' /tmp/packages.yaml) && \ rpm-ostree install "${pkgs[@]}" # enable automatic updates RUN sed -i 's/#AutomaticUpdatePolicy.*/AutomaticUpdatePolicy=stage/' /etc/rpm-ostreed.conf # install container policy COPY --from=config /rpms /tmp/config RUN rpm-ostree install /tmp/config/container-policy/getchoo-container-policy*.rpm RUN rpm-ostree cleanup -m && \ rm -rf /tmp/* /var/* && \ ostree container commit