Dockerfile 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. FROM ubuntu:latest
  2. LABEL maintainer="Jeremy Zheng"
  3. ENV DEBIAN_FRONTEND noninteractive
  4. RUN apt update
  5. RUN apt -y upgrade
  6. RUN apt -y install apt-transport-https software-properties-common curl wget gnupg
  7. RUN apt -y install zsh git locales rsync openssh-client sshpass \
  8. vim sudo tzdata pwgen curl zip unzip tree screen tmux \
  9. build-essential \
  10. php-cli php-fpm \
  11. php-xml php-json php-imap php-intl \
  12. php-mbstring php-bz2 php-zip php-curl \
  13. php-gd php-imagick \
  14. php-mysql php-pgsql php-sqlite3 php-redis
  15. RUN apt -y autoremove
  16. RUN apt -y clean
  17. RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
  18. RUN locale-gen
  19. RUN update-locale LANG=en_US.UTF-8
  20. RUN update-alternatives --set editor /usr/bin/vim.basic
  21. # deploy
  22. RUN useradd -m deploy -s /bin/zsh
  23. RUN passwd -l deploy
  24. RUN echo 'deploy ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/101-deploy
  25. USER deploy
  26. RUN mkdir -p $HOME/downloads $HOME/local
  27. # https://github.com/ohmyzsh/ohmyzsh
  28. RUN git clone https://github.com/ohmyzsh/ohmyzsh.git $HOME/.oh-my-zsh
  29. RUN cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template $HOME/.zshrc
  30. RUN echo 'source $HOME/.profile' >> $HOME/.zshrc
  31. RUN echo 'term screen-256color' >> $HOME/.screenrc
  32. RUN echo 'startup_message off' >> $HOME/.screenrc
  33. RUN echo "defscrollback 10240" >> $HOME/.screenrc
  34. # https://github.com/nvm-sh/nvm
  35. RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | sh
  36. RUN sh -c ". $HOME/.profile \
  37. && nvm install node"
  38. RUN sh -c ". $HOME/.profile \
  39. && npm i yarn -g"
  40. RUN echo 'export PATH=$HOME/.yarn/bin:$PATH' >> $HOME/.profile
  41. RUN mkdir -p $HOME/.local/bin
  42. RUN wget https://getcomposer.org/download/latest-stable/composer.phar -O $HOME/.local/bin/composer
  43. RUN chmod +x $HOME/.local/bin/composer
  44. VOLUME /workspace
  45. WORKDIR /workspace
  46. CMD ["/bin/zsh", "-l"]