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"]

