diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6b8710a --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1226986 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,76 @@ +FROM archlinux:latest as base + +ENV TERM=xterm-256color +ENV DOTFILES=/root/.dotfiles + +RUN pacman --noconfirm -Syu && pacman --noconfirm -Sy \ + vim \ + tmux \ + git \ + fzf \ + base-devel \ + ipython \ + python-pip \ + htop \ + python-pylint \ + python-virtualenv \ + bash-language-server \ + && rm -rf /var/cache/pacman/pkg/* + +FROM base as yay_builder + +# prepare nobody makepkg user +RUN mkdir /home/build && \ + chgrp nobody /home/build && \ + chmod g+ws /home/build && \ + setfacl -m u::rwx,g::rwx /home/build && \ + setfacl -d --set u::rwx,g::rwx,o::- /home/build + +RUN sudo pacman -Sy --noconfirm go && rm -rf /var/cache/pacman/pkg/* + +# Cannot run makepkg as root +USER nobody + +RUN git clone https://aur.archlinux.org/yay.git /home/build/yay +WORKDIR /home/build/yay +RUN env GOCACHE=/home/build makepkg + +USER root +RUN pacman --noconfirm -U /home/build/yay/*zst + +FROM base as final +WORKDIR /root + +RUN pacman -Sy --noconfirm zsh +RUN chsh -s /bin/zsh + +COPY --from=yay_builder /home/build/yay/*zst /tmp/ +RUN pacman --noconfirm -U /tmp/*zst && rm -rf /tmp/*zst + +# bretellofier +RUN pip --no-cache install --upgrade pip git+https://git.decapod.one/brethil/bretellofier + +# antibody +RUN curl -sL https://git.io/antibody | sh -s - -b /usr/local/bin + +# vim-plug +RUN curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ + https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + + +COPY . /root/.dotfiles + +WORKDIR /root/ + +RUN echo "source $DOTFILES/brethil_dotfile.sh" >> .zshrc +RUN ln -s $DOTFILES/vim/vimrc .vimrc +RUN ln -s $DOTFILES/tmux.conf .tmux.conf +RUN echo -e "[include]\npath = $DOTFILES/gitconfig" >> .gitconfig + +# Install vim plugins +RUN vim -c 'PlugInstall|qa!' &>/dev/null || echo "installed vim plugins" + +# Install zsh plugins +RUN antibody update + +CMD tmux