Dockerfile 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. FROM ubuntu:21.10 AS devinstall
  2. ARG DEVENV_USER
  3. ARG DEVENV_PASS
  4. ARG DEVENV_EMAIL
  5. ARG DEVENV_LOCALE
  6. ARG DEVENV_PKGS
  7. ENV TZ=$DEVENV_TZ
  8. ENV DEVENV_USER=$DEVENV_USER
  9. ENV DEVENV_PASS=$DEVENV_PASS
  10. ENV DEVENV_EMAIL=$DEVENV_EMAIL
  11. ENV DEVENV_LOCALE=$DEVENV_LOCALE
  12. ENV DEVENV_PKGS=$DEVENV_PKGS
  13. ENV DEBIAN_FRONTEND=noninteractive
  14. COPY base/build-install.sh /build-install.sh
  15. RUN chmod +x /build-install.sh && /build-install.sh
  16. FROM devinstall AS devbase
  17. COPY base/build-root.sh /build-root.sh
  18. RUN chmod +x /build-root.sh && /build-root.sh
  19. FROM devbase AS devinit
  20. COPY base/build-init-user.sh /build-init-user.sh
  21. USER ${DEVENV_USER}
  22. WORKDIR /home/${DEVENV_USER}
  23. ENV LANG=en_US.UTF-8
  24. RUN cp /build-init-user.sh ./build-init-user.sh && chmod +x ./build-init-user.sh && ./build-init-user.sh
  25. FROM devinit AS devenv
  26. USER ${DEVENV_USER}
  27. WORKDIR /home/${DEVENV_USER}
  28. ENV GOPATH=/home/${DEVENV_USER}/go
  29. ENV NVIM_LISTEN_ADDRESS=/home/${DEVENV_USER}/nvimsocket
  30. COPY base/zshrc /home/${DEVENV_USER}/.zshrc
  31. COPY base/init.vim /home/${DEVENV_USER}/.config/nvim/init.vim
  32. COPY dotfiles/setup.sh /home/${DEVENV_USER}/setup.sh
  33. COPY dotfiles/init.vim /home/${DEVENV_USER}/dotfiles/init.vim
  34. COPY dotfiles/zshrc /home/${DEVENV_USER}/dotfiles/zshrc
  35. COPY base/build-home.sh /home/${DEVENV_USER}/build-home.sh
  36. RUN sudo chown -R ${DEVENV_USER}:${DEVENV_USER} /home/${DEVENV_USER} \
  37. && chmod +x /home/${DEVENV_USER}/*.sh \
  38. && /home/${DEVENV_USER}/build-home.sh
  39. VOLUME /home/${DEVENV_USER}/.config
  40. VOLUME /home/${DEVENV_USER}/host
  41. ENTRYPOINT ["nvim", "+cd ~/host"]