2024-04-06 15:20:55 -08:00
|
|
|
#!/usr/bin/bash
|
|
|
|
|
|
2025-01-21 19:57:03 -09:00
|
|
|
echo "::group:: ===$(basename "$0")==="
|
|
|
|
|
|
2024-04-06 15:20:55 -08:00
|
|
|
set -ouex pipefail
|
|
|
|
|
|
2026-08-09 11:11:44 -08:00
|
|
|
# Apply IP Forwarding before installing Docker to prevent messing with LXC networking
|
|
|
|
|
sysctl -p
|
|
|
|
|
|
2025-10-24 15:51:51 -08:00
|
|
|
# DX packages from Fedora repos - common to all versions
|
|
|
|
|
FEDORA_PACKAGES=(
|
|
|
|
|
android-tools
|
|
|
|
|
bcc
|
2026-06-03 19:39:12 -08:00
|
|
|
bcvk
|
2025-10-24 15:51:51 -08:00
|
|
|
bpftop
|
|
|
|
|
bpftrace
|
|
|
|
|
cockpit-bridge
|
|
|
|
|
cockpit-machines
|
|
|
|
|
cockpit-networkmanager
|
|
|
|
|
cockpit-ostree
|
|
|
|
|
cockpit-podman
|
|
|
|
|
cockpit-selinux
|
|
|
|
|
cockpit-storaged
|
|
|
|
|
cockpit-system
|
|
|
|
|
edk2-ovmf
|
|
|
|
|
flatpak-builder
|
|
|
|
|
incus
|
|
|
|
|
incus-agent
|
|
|
|
|
iotop
|
|
|
|
|
libvirt
|
|
|
|
|
libvirt-nss
|
|
|
|
|
lxc
|
|
|
|
|
nicstat
|
|
|
|
|
numactl
|
|
|
|
|
osbuild-selinux
|
|
|
|
|
p7zip
|
|
|
|
|
p7zip-plugins
|
|
|
|
|
podman-compose
|
|
|
|
|
podman-machine
|
|
|
|
|
podman-tui
|
|
|
|
|
qemu
|
|
|
|
|
qemu-char-spice
|
|
|
|
|
qemu-device-display-virtio-gpu
|
|
|
|
|
qemu-device-display-virtio-vga
|
|
|
|
|
qemu-device-usb-redirect
|
|
|
|
|
qemu-img
|
|
|
|
|
qemu-system-x86-core
|
|
|
|
|
qemu-user-binfmt
|
|
|
|
|
qemu-user-static
|
|
|
|
|
sysprof
|
|
|
|
|
trace-cmd
|
|
|
|
|
udica
|
|
|
|
|
virt-manager
|
|
|
|
|
virt-v2v
|
|
|
|
|
virt-viewer
|
|
|
|
|
ydotool
|
|
|
|
|
)
|
|
|
|
|
|
2026-02-07 21:54:38 -09:00
|
|
|
# rocm doesn't work well on nvidia
|
|
|
|
|
if [[ ! "${IMAGE_NAME}" =~ nvidia ]]; then
|
2026-05-16 15:28:56 -08:00
|
|
|
FEDORA_PACKAGES+=("rocm-hip" "rocm-opencl" "rocm-smi")
|
2026-02-07 21:54:38 -09:00
|
|
|
fi
|
|
|
|
|
|
2026-05-16 15:28:56 -08:00
|
|
|
dnf5 -y install "${FEDORA_PACKAGES[@]}"
|
|
|
|
|
|
2026-10-10 07:30:41 -08:00
|
|
|
# We could use Fedora's moby packages, these are "official"
|
|
|
|
|
DOCKER_CE=(
|
|
|
|
|
containerd.io
|
|
|
|
|
docker-buildx-plugin
|
|
|
|
|
docker-ce
|
|
|
|
|
docker-ce-cli
|
|
|
|
|
docker-compose-plugin
|
|
|
|
|
)
|
2025-10-24 15:51:51 -08:00
|
|
|
|
2026-10-10 07:30:41 -08:00
|
|
|
COPR_PREFIX="copr:copr.fedorainfracloud.org"
|
2025-10-31 14:40:15 -08:00
|
|
|
|
2026-10-10 07:30:41 -08:00
|
|
|
# shellcheck disable=SC1010
|
|
|
|
|
dnf do -y \
|
|
|
|
|
--action install --from-repo=code code \
|
|
|
|
|
--action install --from-repo=docker-ce-stable "${DOCKER_CE[@]}" \
|
|
|
|
|
--action install --from-repo="${COPR_PREFIX}:karmab:kcli" kcli
|
2024-04-06 15:20:55 -08:00
|
|
|
|
2026-10-10 07:30:41 -08:00
|
|
|
dnf -y install --from-repo="${COPR_PREFIX}:ublue-os:packages" ublue-os-libvirt-workarounds
|
2025-10-24 15:51:51 -08:00
|
|
|
|
2026-08-09 11:11:44 -08:00
|
|
|
rsync -rvK /ctx/system_files/dx/ /
|
|
|
|
|
|
|
|
|
|
# Load iptable_nat module for docker-in-docker.
|
|
|
|
|
# See:
|
|
|
|
|
# - https://github.com/ublue-os/bluefin/issues/2365
|
|
|
|
|
# - https://github.com/devcontainers/features/issues/1235
|
|
|
|
|
mkdir -p /etc/modules-load.d
|
|
|
|
|
tee /etc/modules-load.d/ip_tables.conf <<EOF
|
|
|
|
|
iptable_nat
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
# Branding Changes
|
|
|
|
|
echo "Variant=Developer Experience" >> /usr/share/kde-settings/kde-profile/default/xdg/kcm-about-distrorc
|
|
|
|
|
|
2025-01-21 19:57:03 -09:00
|
|
|
echo "::endgroup::"
|