summaryrefslogtreecommitdiff
path: root/base/Containerfile
blob: 43f0f1a2336874c857f97f263919a05847c854da (plain)
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
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-silverblue}"
ARG BASE_IMAGE="quay.io/fedora-ostree-desktops/${IMAGE_FLAVOR}"
ARG FEDORA_VERSION="${FEDORA_VERSION:-39}"

FROM docker.io/mikefarah/yq as yq
FROM ghcr.io/getchoo/config:${FEDORA_VERSION} as config

FROM ${BASE_IMAGE}:${FEDORA_VERSION} as builder
ARG FEDORA_VERSION

COPY initial_setup.sh /usr/bin/
COPY packages.yaml /tmp/
COPY --from=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 --install mesa-va-drivers-freeworld
RUN rpm-ostree install mesa-vdpau-drivers-freeworld
RUN rpm-ostree install ffmpeg gstreamer1-plugin-libav gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-ugly gstreamer1-vaapi

# 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 export 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