Dockerfile 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. FROM ubuntu:22.04 AS devinstall
  2. ARG TZ
  3. ARG DEVENV_LOCALE
  4. ARG UID
  5. ARG GID
  6. ARG DEVENV_USER
  7. ARG DEVENV_GROUP
  8. ARG DEVENV_PASS
  9. ARG DEVENV_EMAIL
  10. ARG DEVENV_MOUNT_PATH
  11. ARG DEVENV_GIT_DEF_BRANCH
  12. ARG DEVENV_GH_USER
  13. ARG DEVENV_GH_PASS
  14. ARG DEVENV_SH_USER
  15. ARG DEVENV_SH_PASS
  16. ENV TZ=$DEVENV_TZ
  17. ENV UID=$UID
  18. ENV GID=$GID
  19. ENV DEVENV_LOCALE=$DEVENV_LOCALE
  20. ENV DEVENV_USER=$DEVENV_USER
  21. ENV DEVENV_GROUP=$DEVENV_GROUP
  22. ENV DEVENV_PASS=$DEVENV_PASS
  23. ENV DEVENV_EMAIL=$DEVENV_EMAIL
  24. ENV DEVENV_MOUNT_PATH=$DEVENV_MOUNT_PATH
  25. ENV DEVENV_GIT_DEF_BRANCH=$DEVENV_GIT_DEF_BRANCH
  26. ENV DEVENV_GH_USER=$DEVENV_GH_USER
  27. ENV DEVENV_GH_PASS=$DEVENV_GH_PASS
  28. ENV DEVENV_SH_USER=$DEVENV_SH_USER
  29. ENV DEVENV_SH_PASS=$DEVENV_SH_PASS
  30. ENV LANG=$DEVENV_LOCALE
  31. ENV NVIM_LISTEN_ADDRESS=/home/${DEVENV_USER}/nvimsocket
  32. ENV DEBIAN_FRONTEND=noninteractive
  33. COPY base/build-install.sh /build-install.sh
  34. RUN /build-install.sh
  35. FROM devinstall AS devbase
  36. COPY base/build-root.sh /build-root.sh
  37. RUN /build-root.sh
  38. FROM devbase AS devinit
  39. USER ${UID}:${GID}
  40. WORKDIR /home/${DEVENV_USER}
  41. RUN sudo chown -R ${DEVENV_USER} /home/${DEVENV_USER}
  42. COPY base/build-init-user.sh /home/${DEVENV_USER}/build-init-user.sh
  43. RUN ./build-init-user.sh
  44. FROM devinit AS devenv
  45. USER ${DEVENV_USER}
  46. WORKDIR /home/${DEVENV_USER}
  47. COPY dotfiles/setup.sh /home/${DEVENV_USER}/setup.sh
  48. COPY base/build-home.sh /home/${DEVENV_USER}/build-home.sh
  49. RUN /home/${DEVENV_USER}/build-home.sh
  50. COPY base/init.vim /home/${DEVENV_USER}/.config/nvim/init.vim
  51. COPY dotfiles/init.vim /home/${DEVENV_USER}/dotfiles/init.vim
  52. COPY base/zshrc /home/${DEVENV_USER}/.zshrc
  53. COPY dotfiles/zshrc /home/${DEVENV_USER}/dotfiles/zshrc
  54. COPY base/start.sh /home/${DEVENV_USER}/start.sh
  55. COPY base/open.sh /home/${DEVENV_USER}/open.sh
  56. RUN sh -c "$(curl -fLsS https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  57. RUN rm ~/.zshrc
  58. RUN mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
  59. RUN nvim --headless +PlugInstall +qall
  60. VOLUME /home/${DEVENV_USER}/host
  61. ENTRYPOINT ["./start.sh"]