Dockerfile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. FROM alpine:latest
  2. LABEL maintainer="Jeremy Zheng"
  3. RUN apk update
  4. RUN apk upgrade
  5. RUN apk add vim wget curl bash zsh pwgen openssl git tmux rsync \
  6. tar zip unzip bzip2 bzip3 xz \
  7. inetutils-telnet bind-tools \
  8. openssh-client sshpass \
  9. build-base cmake pkgconf \
  10. nodejs npm yarn \
  11. openjdk21 gradle maven \
  12. python3 py3-pip python3-dev \
  13. openssl-dev
  14. RUN mkdir -p $HOME/downloads $HOME/local $HOME/tmp
  15. # https://github.com/ohmyzsh/ohmyzsh
  16. RUN git clone https://github.com/ohmyzsh/ohmyzsh.git $HOME/.oh-my-zsh
  17. RUN cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template $HOME/.zshrc
  18. RUN echo 'export PATH=$HOME/.local/bin:$PATH' >> $HOME/.profile
  19. RUN echo 'source $HOME/.profile' >> $HOME/.zshrc
  20. RUN git config --global core.quotepath false
  21. RUN git config --global http.version HTTP/1.1
  22. RUN git config --global pull.rebase false
  23. RUN echo 'set-option -g history-limit 102400' > $HOME/.tmux.conf
  24. RUN echo 'set-option -g default-shell "/bin/zsh"' >> $HOME/.tmux.conf
  25. # https://pip.pypa.io/en/stable/installation/
  26. RUN sh -c ". $HOME/.profile \
  27. && python3 -m venv $HOME/local/python3 \
  28. && . $HOME/local/python3/bin/activate \
  29. && pip install --upgrade pip \
  30. && pip install ansible paramiko \
  31. && pip install bypy"
  32. RUN echo 'export ANSIBLE_HOST_KEY_CHECKING=False' >> $HOME/.profile
  33. RUN echo 'alias peony="ANSIBLE_LOG_PATH=$HOME/tmp/$(date +%Y%m%d%H%M%S).log ansible-playbook"' >> $HOME/.profile
  34. RUN echo 'source $HOME/local/python3/bin/activate' >> $HOME/.zshrc
  35. RUN echo "$(date -u +%4Y%m%d%H%M%S)" | tee /VERSION
  36. VOLUME /workspace
  37. WORKDIR /workspace
  38. CMD ["/bin/zsh", "-l"]