Dockerfile 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 dotfiles/setup.sh /home/${DEVENV_USER}/setup.sh
  31. COPY base/init.vim /home/${DEVENV_USER}/.config/nvim/init.vim
  32. COPY dotfiles/init.vim /home/${DEVENV_USER}/dotfiles/init.vim
  33. COPY base/build-home.sh /home/${DEVENV_USER}/build-home.sh
  34. RUN sudo chown -R ${DEVENV_USER}:${DEVENV_USER} /home/${DEVENV_USER} \
  35. && chmod +x /home/${DEVENV_USER}/*.sh \
  36. && /home/${DEVENV_USER}/build-home.sh
  37. COPY base/zshrc /home/${DEVENV_USER}/.zshrc
  38. COPY dotfiles/zshrc /home/${DEVENV_USER}/dotfiles/zshrc
  39. VOLUME /home/${DEVENV_USER}/.config
  40. VOLUME /home/${DEVENV_USER}/host
  41. ENTRYPOINT ["zsh", "-c", "nvim", "+cd ~/host"]