|
|
@@ -0,0 +1,48 @@
|
|
|
+FROM alpine:latest
|
|
|
+LABEL maintainer="Jeremy Zheng"
|
|
|
+
|
|
|
+RUN apk update
|
|
|
+RUN apk upgrade
|
|
|
+
|
|
|
+RUN apk add vim wget curl bash zsh pwgen openssl git tmux rsync \
|
|
|
+ tar zip unzip bzip2 bzip3 xz \
|
|
|
+ inetutils-telnet bind-tools \
|
|
|
+ openssh-client sshpass \
|
|
|
+ build-base cmake pkgconf \
|
|
|
+ nodejs npm yarn \
|
|
|
+ openjdk21 gradle maven \
|
|
|
+ python3 py3-pip python3-dev \
|
|
|
+ openssl-dev
|
|
|
+
|
|
|
+RUN mkdir -p $HOME/downloads $HOME/local $HOME/tmp
|
|
|
+
|
|
|
+# https://github.com/ohmyzsh/ohmyzsh
|
|
|
+RUN git clone https://github.com/ohmyzsh/ohmyzsh.git $HOME/.oh-my-zsh
|
|
|
+RUN cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template $HOME/.zshrc
|
|
|
+RUN echo 'export PATH=$HOME/.local/bin:$PATH' >> $HOME/.profile
|
|
|
+RUN echo 'source $HOME/.profile' >> $HOME/.zshrc
|
|
|
+
|
|
|
+RUN git config --global core.quotepath false
|
|
|
+RUN git config --global http.version HTTP/1.1
|
|
|
+RUN git config --global pull.rebase false
|
|
|
+RUN echo 'set-option -g history-limit 102400' > $HOME/.tmux.conf
|
|
|
+RUN echo 'set-option -g default-shell "/bin/zsh"' >> $HOME/.tmux.conf
|
|
|
+
|
|
|
+# https://pip.pypa.io/en/stable/installation/
|
|
|
+RUN sh -c ". $HOME/.profile \
|
|
|
+ && python3 -m venv $HOME/local/python3 \
|
|
|
+ && . $HOME/local/python3/bin/activate \
|
|
|
+ && pip install --upgrade pip \
|
|
|
+ && pip install ansible paramiko \
|
|
|
+ && pip install bypy"
|
|
|
+RUN echo 'export ANSIBLE_HOST_KEY_CHECKING=False' >> $HOME/.profile
|
|
|
+RUN echo 'alias peony="ANSIBLE_LOG_PATH=$HOME/tmp/$(date +%Y%m%d%H%M%S).log ansible-playbook"' >> $HOME/.profile
|
|
|
+RUN echo 'source $HOME/local/python3/bin/activate' >> $HOME/.zshrc
|
|
|
+
|
|
|
+RUN echo "$(date -u +%4Y%m%d%H%M%S)" | tee /VERSION
|
|
|
+
|
|
|
+VOLUME /workspace
|
|
|
+WORKDIR /workspace
|
|
|
+
|
|
|
+CMD ["/bin/zsh", "-l"]
|
|
|
+
|