summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Containerfile46
1 files changed, 46 insertions, 0 deletions
diff --git a/Containerfile b/Containerfile
new file mode 100644
index 0000000..6ffa096
--- /dev/null
+++ b/Containerfile
@@ -0,0 +1,46 @@
+### 1. BUILD ARGS
+## IMAGE_NAME arg can be anything from ublue upstream: silverblue, kinoite, sericea, vauxite, mate, lxqt, base
+ARG IMAGE_NAME="silverblue"
+## IMAGE_SUFFIX arg should be "main", nvidia users should use "nvidia"
+ARG IMAGE_SUFFIX="main"
+## FEDORA_MAJOR_VERSION arg must be a version built by ublue: 37 or 38 as of today
+ARG FEDORA_MAJOR_VERSION="38"
+## NVIDIA_MAJOR_VERSION should only be changed if the user needs a specific nvidia driver version
+## if needing driver 535, this should be set to "-535". It is important to include the hyphen
+ARG NVIDIA_MAJOR_VERSION=""
+
+
+### 2. SOURCE IMAGE
+## this is a standard Containerfile FROM using the build ARGs above to select the right upstream image
+FROM ghcr.io/ublue-os/${IMAGE_NAME}-${IMAGE_SUFFIX}:${FEDORA_MAJOR_VERSION}${NVIDIA_MAJOR_VERSION}
+
+
+### 3. PRE-MODIFICATIONS
+## this directory is needed to prevent failure with some RPM installs
+RUN mkdir -p /var/lib/alternatives
+
+
+### 4. MODIFICATIONS
+## make modifications desired in your image and install packages here, a few examples follow
+
+# install a package from standard fedora repo
+RUN rpm-ostree install screen
+
+# install a package from rpmfusion repo
+RUN rpm-ostree install vlc
+
+# static binaries can sometimes by added using a COPY directive like these below.
+COPY --from=cgr.dev/chainguard/kubectl:latest /usr/bin/kubectl /usr/bin/kubectl
+#COPY --from=docker.io/docker/compose-bin:latest /docker-compose /usr/bin/docker-compose
+
+# modify default timeouts on system to prevent slow reboots from services that won't stop
+RUN sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/user.conf && \
+ sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/system.conf
+
+
+### 5. POST-MODIFICATIONS
+## these commands leave the image in a clean state after local modifications
+RUN rm -rf /tmp/* /var/* && \
+ ostree container commit && \
+ mkdir -p /tmp /var/tmp && \
+ chmod 1777 /tmp /var/tmp