-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathContainerfile
More file actions
95 lines (79 loc) · 4.15 KB
/
Copy pathContainerfile
File metadata and controls
95 lines (79 loc) · 4.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
COPY --from=ghcr.io/blue-build/nushell-image:default /nu/nu /usr/libexec/bluebuild/nu/nu
FROM quay.io/fedora/fedora-bootc:44
# Copy Homebrew files from the brew image
# And enable
COPY --from=ghcr.io/ublue-os/brew:latest /system_files /
RUN --mount=type=cache,dst=/var/cache \
--mount=type=cache,dst=/var/log \
--mount=type=tmpfs,dst=/tmp \
/usr/bin/systemctl preset brew-setup.service && \
/usr/bin/systemctl preset brew-update.timer && \
/usr/bin/systemctl preset brew-upgrade.timer
COPY --from=ghcr.io/projectbluefin/common:latest /system_files/shared /
## Other possible base images include:
# FROM ghcr.io/ublue-os/bazzite:latest
# FROM ghcr.io/ublue-os/bluefin-nvidia:stable
#
# ... and so on, here are more base images
# Universal Blue Images: https://github.com/orgs/ublue-os/packages
# Fedora base image: quay.io/fedora/fedora-bootc:41
# CentOS base images: quay.io/centos-bootc/centos-bootc:stream10
### MODIFICATIONS
## make modifications desired in your image and install packages by modifying the build.sh script
## the following RUN directive does all the things required to run "build.sh" as recommended.
COPY system_files /
COPY scripts /scripts
ARG BASE_IMAGE_NAME="bluefin-dx"
ARG FEDORA_MAJOR-VERSION="42"
ARG IMAGE_NAME="winnieos"
ARG IMAGE_VENDOR="winsdominoes"
ARG FEDORA_MAJOR_VERSION="43"
ARG UBLUE_IMAGE_TAG="43"
ARG VERSION=""
## Other possible base images include:
# FROM ghcr.io/ublue-os/bazzite:latest
# FROM ghcr.io/ublue-os/bluefin-nvidia:stable
#
# ... and so on, here are more base images
# Universal Blue Images: https://github.com/orgs/ublue-os/packages
# Fedora base image: quay.io/fedora/fedora-bootc:41
# CentOS base images: quay.io/centos-bootc/centos-bootc:stream10
# `yq` be used to pass BlueBuild modules configuration written in yaml
RUN /scripts/00-preconfigure.sh && \
/scripts/01-image-info.sh && \
/scripts/02-install-packages.sh && \
/scripts/03-remove-packages.sh && \
/scripts/04-enable-services.sh && \
/scripts/05-just.sh && \
/scripts/build-extensions.sh
COPY --from=docker.io/mikefarah/yq /usr/bin/yq /usr/bin/yq
RUN \
# add in the module source code
--mount=type=bind,from=ghcr.io/blue-build/modules:latest,src=/modules,dst=/tmp/modules,rw \
# add in the script that sets up the module run environment
--mount=type=bind,from=ghcr.io/blue-build/cli/build-scripts:latest,src=/scripts/,dst=/tmp/scripts/ \
# run the module
config=$'\
type: gnome-extensions \n\
install: \n\
- Caffeine # https://extensions.gnome.org/extension/517/caffeine/ \n\
- Battery Health Charging # https://extensions.gnome.org/extension/5724/battery-health-charging/ \n\
- Immich Wallpaper # https://extensions.gnome.org/extension/8701/immich-wallpaper/ \n\
- Blur my Shell # https://extensions.gnome.org/extension/3193/blur-my-shell/ \n\
- AppIndicator and KStatusNotifierItem Support # https://extensions.gnome.org/extension/615/appindicator-support/ \n\
- Removable Drive Menu # https://extensions.gnome.org/extension/7/removable-drive-menu/ \n\
- Quick Settings Audio Devices Renamer # https://extensions.gnome.org/extension/6000/quick-settings-audio-devices-renamer/ \n\
' && \
/tmp/scripts/run_module.sh "$(echo "$config" | yq eval '.type')" "$(echo "$config" | yq eval -o=j -I=0)"
RUN dnf5 install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
COPY --from=ghcr.io/ublue-os/akmods:main-44 / /tmp/akmods-common
RUN find /tmp/akmods-common
## optionally install remove old and install new kernel
# dnf -y remove --no-autoremove kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra
## install ublue support package and desired kmod(s)
RUN dnf5 install -y /tmp/akmods-common/rpms/ublue-os/ublue-os-akmods*.rpm --skip-broken
RUN dnf5 install -y /tmp/akmods-common/rpms/kmods/kmod-v4l2loopback*.rpm --skip-broken
RUN dnf5 install -y /tmp/akmods-common/rpms/kmods/kmod-xone*.rpm --skip-broken
RUN dnf5 install -y /tmp/akmods-common/rpms/kmods/kmod-framework-laptop*.rpm --skip-broken
RUN /scripts/06-cleanup.sh && \
ostree container commit