summaryrefslogtreecommitdiff
path: root/Containerfile
diff options
context:
space:
mode:
authorBenjamin Sherman <benjamin@holyarmy.org>2023-08-26 11:13:59 -0500
committerBenjamin Sherman <benjamin@holyarmy.org>2023-08-26 18:19:36 -0500
commit0c9be97ab878b2ed98850b5ba44725c8e40cfb17 (patch)
tree968b868bd47fb5f3a681558cf1289fbf0bf67ded /Containerfile
parent12af8be21e6cf643ed746f0aafa0359a1288d3e9 (diff)
downloadAeroCore-OS-0c9be97ab878b2ed98850b5ba44725c8e40cfb17.tar.gz
AeroCore-OS-0c9be97ab878b2ed98850b5ba44725c8e40cfb17.zip
feat: first pass at a simple downstream build
Diffstat (limited to 'Containerfile')
-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