2025-07-26 00:04:42 +10:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
docker_run() {
|
2025-08-16 02:10:04 +00:00
|
|
|
# If the auth sock is empty just mount random shit I dont fucking care.
|
|
|
|
[ -z "$SSH_AUTH_SOCK" ] && SSH_AUTH_SOCK=$(mktemp)
|
|
|
|
|
|
|
|
# Allow docker to forward some x shit.
|
2025-07-26 00:04:42 +10:00
|
|
|
xhost +local:docker
|
2025-08-16 02:10:04 +00:00
|
|
|
|
|
|
|
# Run the devenv
|
2025-07-26 00:04:42 +10:00
|
|
|
docker run -it --rm \
|
|
|
|
-u "${UID}:${GID}" \
|
2025-08-16 02:10:04 +00:00
|
|
|
-v ~/.bashrc:/home/x/.bashrc \
|
2025-08-19 07:37:41 +00:00
|
|
|
-v ~/.kube:/home/x/.kube \
|
2025-08-16 02:10:04 +00:00
|
|
|
-v ~/.ssh:/home/x/.ssh \
|
|
|
|
-v ${SSH_AUTH_SOCK}:/run/user/${UID}/ssh-agent.socket \
|
|
|
|
-v ~/.gitconfig:/home/x/.gitconfig \
|
|
|
|
-v ~/.config/git:/home/x/.config/git \
|
|
|
|
-v $HOME/Projects:/home/x/Projects \
|
2025-08-19 07:37:41 +00:00
|
|
|
-v $HOME/Scripts:/home/x/Scripts \
|
2025-07-26 00:04:42 +10:00
|
|
|
-v ${HOME}/.Xauthority:/home/x/.Xauthority \
|
2025-08-16 02:10:04 +00:00
|
|
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
2025-07-26 00:04:42 +10:00
|
|
|
-e DISPLAY=${DISPLAY} \
|
|
|
|
--device /dev/dri \
|
|
|
|
--group-add video \
|
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
|
|
--entrypoint /usr/bin/tmux \
|
|
|
|
d:${1}
|
|
|
|
}
|
|
|
|
|
|
|
|
docker_build() {
|
2025-08-16 02:10:04 +00:00
|
|
|
# --network=host prevent stupid docker shit breaking yay
|
2025-08-19 07:37:41 +00:00
|
|
|
if [ $1 == "base" ] ; then
|
|
|
|
docker build --network=host ./${1} -t d:${1}
|
|
|
|
else
|
|
|
|
# Need base installed first dur
|
|
|
|
docker build --network=host ./base -t d:base
|
|
|
|
docker build --network=host ./${1} -t d:${1}
|
|
|
|
fi
|
2025-07-26 00:04:42 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
*)
|
|
|
|
docker_build $1 && docker_run $1
|
|
|
|
;;
|
|
|
|
esac
|