Compare commits

...

5 commits

Author SHA1 Message Date
j
161e20eb78 build base before not base. map kubes ands cripts dirs 2025-08-19 07:37:41 +00:00
j
48216435d3 note on lsp 2025-08-19 07:37:23 +00:00
j
e2c469987d kitchen sink 2025-08-19 07:37:15 +00:00
j
aed70f20c5 fixes annoying locale message 2025-08-19 07:37:10 +00:00
j
3e73b8707e mason installs required linters 2025-08-19 07:37:00 +00:00
6 changed files with 98 additions and 2 deletions

View file

@ -34,3 +34,8 @@ So this whole thing is kinda chill. The only annoying thing is that sometimes
the text in container is blue, sometimes it's white. Depends on your TERM and the text in container is blue, sometimes it's white. Depends on your TERM and
COLORTERM variables. I try to set sane variables but I think mapping ~/.bashrc breaks COLORTERM variables. I try to set sane variables but I think mapping ~/.bashrc breaks
that. that.
## LSP Config
You can get minmaxxy and shit about LSP configuration. There's a bunch of system
stuff that needs to be installed though. I dont know how I want to handle this yet.

View file

@ -6,6 +6,14 @@ ENV COLORTERM=truecolor
# Update # Update
RUN pacman -Syu --noconfirm RUN pacman -Syu --noconfirm
## Before anything, avoid some annoying warnings
RUN pacman -Sy --noconfirm glibc && \
echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && \
locale-gen
ENV LANG=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
## Configure non-root user ## Configure non-root user
RUN pacman -S --noconfirm sudo RUN pacman -S --noconfirm sudo
RUN useradd -m -s /bin/bash -G wheel x RUN useradd -m -s /bin/bash -G wheel x

View file

@ -168,7 +168,15 @@ require("lazy").setup({
config = function() config = function()
require("mason").setup() require("mason").setup()
require("mason-lspconfig").setup({ require("mason-lspconfig").setup({
ensure_installed = { "lua_ls" }, -- this installs lua-language-server ensure_installed = {
"lua_ls",
"pyright",
"tsserver",
"dockerls",
"terraformls",
"phpactor",
},
automatic_installation = true,
}) })
end, end,
}, },

10
run.sh
View file

@ -11,11 +11,13 @@ docker_run() {
docker run -it --rm \ docker run -it --rm \
-u "${UID}:${GID}" \ -u "${UID}:${GID}" \
-v ~/.bashrc:/home/x/.bashrc \ -v ~/.bashrc:/home/x/.bashrc \
-v ~/.kube:/home/x/.kube \
-v ~/.ssh:/home/x/.ssh \ -v ~/.ssh:/home/x/.ssh \
-v ${SSH_AUTH_SOCK}:/run/user/${UID}/ssh-agent.socket \ -v ${SSH_AUTH_SOCK}:/run/user/${UID}/ssh-agent.socket \
-v ~/.gitconfig:/home/x/.gitconfig \ -v ~/.gitconfig:/home/x/.gitconfig \
-v ~/.config/git:/home/x/.config/git \ -v ~/.config/git:/home/x/.config/git \
-v $HOME/Projects:/home/x/Projects \ -v $HOME/Projects:/home/x/Projects \
-v $HOME/Scripts:/home/x/Scripts \
-v ${HOME}/.Xauthority:/home/x/.Xauthority \ -v ${HOME}/.Xauthority:/home/x/.Xauthority \
-v /tmp/.X11-unix:/tmp/.X11-unix \ -v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=${DISPLAY} \ -e DISPLAY=${DISPLAY} \
@ -28,7 +30,13 @@ docker_run() {
docker_build() { docker_build() {
# --network=host prevent stupid docker shit breaking yay # --network=host prevent stupid docker shit breaking yay
docker build --network=host ./${1} -t d:${1} 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
} }

51
sink/Dockerfile Normal file
View file

@ -0,0 +1,51 @@
FROM d:base
ENV TERM=xterm-256color
ENV COLORTERM=truecolor
ENV LANG=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
ENV PATH=/opt/flutter/bin:$PATH
# Update
RUN sudo pacman -Syu --noconfirm
RUN yay -Syu --noconfirm
# Update and install base packages
RUN sudo pacman -Syu --noconfirm && \
sudo pacman -S --noconfirm \
git openssh sudo base-devel curl wget unzip gnupg \
go python nodejs npm php ruby jekyll \
gtk3 clang cmake gcc make ninja pkgconf \
docker docker-compose \
terraform \
kubectl \
helm \
k9s
RUN yay -Sy --noconfirm \
opentofu
# Install Flutter manually (not in pacman)
# GPT Full flutter support command ehh
RUN sudo pacman -S --noconfirm \
clang \
ninja \
cmake \
gtk3 \
pkgconf \
libepoxy \
libappindicator-gtk3 \
curl \
unzip
RUN sudo mkdir /opt/flutter && sudo chown -R x:x /opt/flutter && \
git clone https://github.com/flutter/flutter.git /opt/flutter && \
/opt/flutter/bin/flutter doctor
# Install Argo CD
RUN sudo curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 && \
sudo chmod +x /usr/local/bin/argocd
ENTRYPOINT ["/entrypoint.sh"]

16
sink/entrypoint.sh Normal file
View file

@ -0,0 +1,16 @@
#!/bin/bash
# Start the ssh-agent if it's not already running
if [ ! -S /tmp/ssh-agent.sock ]; then
eval $(ssh-agent -a /tmp/ssh-agent.sock)
fi
# Export environment variables globally
export SSH_AUTH_SOCK=/tmp/ssh-agent.sock
echo "export SSH_AUTH_SOCK=/tmp/ssh-agent.sock" >> /etc/profile.d/ssh-agent.sh
# Optionally preload keys
# ssh-add /path/to/id_rsa
# Start tmux
SSH_AUTH_SOCK=/tmp/ssh-agent.sock tmux