Install script and supervisor init
This commit is contained in:
parent
e17315e3d2
commit
a70377b94a
6 changed files with 83 additions and 18 deletions
39
Dockerfile
39
Dockerfile
|
@ -4,30 +4,35 @@ COPY ./aur-packages/srcpkgs/cage-vi/ /tmp/cage/
|
||||||
|
|
||||||
RUN pacman -Syu --noconfirm base-devel \
|
RUN pacman -Syu --noconfirm base-devel \
|
||||||
&& chown -R nobody: /tmp/cage/ \
|
&& chown -R nobody: /tmp/cage/ \
|
||||||
&& source /tmp/cage/PKGBUILD && pacman -Syu --noconfirm ${depends[@]} ${makedepends[@]} \
|
&& source /tmp/cage/PKGBUILD && pacman -S --noconfirm ${depends[@]} ${makedepends[@]} \
|
||||||
&& runuser -u nobody -- sh -c "cd /tmp/cage/ && makepkg -c --noconfirm"
|
&& runuser -u nobody -- sh -c "cd /tmp/cage/ && makepkg -c --noconfirm"
|
||||||
|
|
||||||
FROM binhex/arch-base:latest
|
FROM binhex/arch-base:latest
|
||||||
|
|
||||||
COPY --from=build /tmp/cage/*.pkg.tar.zst /tmp/cage/
|
COPY --from=build /tmp/cage/*.pkg.tar.zst /tmp/cage/
|
||||||
|
|
||||||
RUN pacman -Syu --noconfirm mesa mesa-libgl wayvnc seatd \
|
COPY build/root/*.sh /root/
|
||||||
xorg-xwayland noto-fonts gnu-free-fonts \
|
COPY config/ /config/
|
||||||
&& pacman -U --noconfirm /tmp/cage/*.pkg.tar.zst \
|
COPY supervisor/*.conf /etc/supervisor/conf.d/
|
||||||
&& yes y | pacman -Scc >/dev/null 2>&1 \
|
|
||||||
&& rm -rf /usr/share/man/* /usr/share/doc/* \
|
|
||||||
/var/cache/pacman/pkg/* /var/lib/pacman/sync/* \
|
|
||||||
/tmp/*
|
|
||||||
|
|
||||||
COPY wayvnc.conf /etc/wayvnc/config
|
RUN chmod +x /root/*.sh && \
|
||||||
|
/bin/bash /root/install.sh
|
||||||
|
|
||||||
ENV PGID=10000 \
|
# TODO, move to install.sh
|
||||||
PUID=10000 \
|
ENV PUID=10000 \
|
||||||
HOME=/home/user
|
PGID=10000 \
|
||||||
|
UMASK=022 \
|
||||||
|
WAYLAND_DISPLAY=wayland-0 \
|
||||||
|
XDG_RUNTIME_DIR=/run/user/${PUID} \
|
||||||
|
WLR_BACKENDS=headless \
|
||||||
|
WLR_NO_HARDWARE_CURSORS=1 \
|
||||||
|
WLR_DRM_DEVICES=/dev/dri/card0
|
||||||
|
|
||||||
RUN useradd -U -u ${PGID} -G users,seat,video,render -d "${HOME}" user \
|
RUN usermod -a -G seat,video,render nobody \
|
||||||
&& mkdir -p /run/user/${PGID} \
|
&& mkdir -p ${XDG_RUNTIME_DIR} \
|
||||||
&& chown user: /run/user/${PGID} \
|
&& chown ${PUID}:${PGID} ${XDG_RUNTIME_DIR} \
|
||||||
&& chmod 7700 /run/user/${PGID}
|
&& chmod 7700 ${XDG_RUNTIME_DIR}
|
||||||
|
|
||||||
WORKDIR /
|
EXPOSE 5900
|
||||||
|
|
||||||
|
CMD ["/bin/bash", "/usr/local/bin/init.sh"]
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 5f454d6520b5709b8e0cca6de5a9d40ad6b8f323
|
Subproject commit a5c019afc5a210a4296a6474257f9b9a9427b31d
|
52
build/root/install.sh
Normal file
52
build/root/install.sh
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# exit script if return code != 0
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# build scripts
|
||||||
|
####
|
||||||
|
|
||||||
|
# download build scripts from github
|
||||||
|
curl --connect-timeout 5 --max-time 600 --retry 5 --retry-delay 0 --retry-max-time 60 -o /tmp/scripts-master.zip -L https://github.com/binhex/scripts/archive/master.zip
|
||||||
|
|
||||||
|
# unzip build scripts
|
||||||
|
unzip /tmp/scripts-master.zip -d /tmp
|
||||||
|
|
||||||
|
# move shell scripts to /root
|
||||||
|
mv /tmp/scripts-master/shell/arch/docker/*.sh /usr/local/bin/
|
||||||
|
|
||||||
|
# detect image arch
|
||||||
|
####
|
||||||
|
|
||||||
|
OS_ARCH=$(cat /etc/os-release | grep -P -o -m 1 "(?=^ID\=).*" | grep -P -o -m 1 "[a-z]+$")
|
||||||
|
if [[ ! -z "${OS_ARCH}" ]]; then
|
||||||
|
if [[ "${OS_ARCH}" == "arch" ]]; then
|
||||||
|
OS_ARCH="x86-64"
|
||||||
|
else
|
||||||
|
OS_ARCH="aarch64"
|
||||||
|
fi
|
||||||
|
echo "[info] OS_ARCH defined as '${OS_ARCH}'"
|
||||||
|
else
|
||||||
|
echo "[warn] Unable to identify OS_ARCH, defaulting to 'x86-64'"
|
||||||
|
OS_ARCH="x86-64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pacman packages
|
||||||
|
####
|
||||||
|
|
||||||
|
# define pacman packages
|
||||||
|
pacman_packages="mesa mesa-libgl wayvnc seatd xorg-xwayland noto-fonts gnu-free-fonts"
|
||||||
|
|
||||||
|
# install pre-reqs
|
||||||
|
pacman -S --needed $pacman_packages --noconfirm
|
||||||
|
|
||||||
|
# install locally built cage
|
||||||
|
pacman -U --noconfirm /tmp/cage/*.pkg.tar.zst
|
||||||
|
|
||||||
|
# env vars
|
||||||
|
####
|
||||||
|
# TODO
|
||||||
|
mkdir -p /config
|
||||||
|
|
||||||
|
# cleanup
|
||||||
|
cleanup.sh
|
4
supervisor/cage.conf
Normal file
4
supervisor/cage.conf
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[program:cage]
|
||||||
|
user = nobody
|
||||||
|
command = /usr/bin/cage %(ENV_APP)s
|
||||||
|
priority = 50
|
4
supervisor/wayvnc.conf
Normal file
4
supervisor/wayvnc.conf
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[program:wayvnc]
|
||||||
|
user = nobody
|
||||||
|
command = /usr/bin/wayvnc -C /config/wayvnc/config -g
|
||||||
|
priority = 100
|
Loading…
Reference in a new issue