Update Dockerfile
Browse files- Dockerfile +15 -13
Dockerfile
CHANGED
|
@@ -1,21 +1,21 @@
|
|
| 1 |
-
#
|
| 2 |
FROM ubuntu:22.04
|
| 3 |
|
| 4 |
-
#
|
| 5 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 6 |
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
|
| 7 |
|
| 8 |
-
#
|
| 9 |
RUN apt-get update && apt-get install -y \
|
| 10 |
curl wget git htop btop nano vim python3 python3-pip sudo zsh tmux unzip locales \
|
| 11 |
figlet lolcat neofetch cmatrix tty-clock \
|
| 12 |
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
| 13 |
|
| 14 |
-
#
|
| 15 |
RUN wget https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64 -O /usr/local/bin/ttyd \
|
| 16 |
&& chmod +x /usr/local/bin/ttyd
|
| 17 |
|
| 18 |
-
#
|
| 19 |
RUN useradd -m -s /bin/zsh -u 1000 user \
|
| 20 |
&& echo "user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
| 21 |
|
|
@@ -24,30 +24,32 @@ ENV HOME=/home/user
|
|
| 24 |
ENV PATH="/home/user/.local/bin:/usr/games:${PATH}"
|
| 25 |
WORKDIR $HOME/app
|
| 26 |
|
| 27 |
-
# Oh My Zsh
|
| 28 |
RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended \
|
| 29 |
&& git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions \
|
| 30 |
&& git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
|
| 31 |
|
| 32 |
-
# Zsh
|
| 33 |
RUN sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="ys"/g' ~/.zshrc \
|
| 34 |
&& sed -i 's/plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting)/g' ~/.zshrc \
|
| 35 |
-
&& echo 'alias matrix="cmatrix -b"' >> ~/.zshrc
|
| 36 |
|
| 37 |
-
# Tmux
|
| 38 |
RUN echo 'set -g default-terminal "screen-256color"' > ~/.tmux.conf \
|
| 39 |
-
&& echo 'set -g
|
|
|
|
| 40 |
&& echo 'set -g status-fg "#00FFFF"' >> ~/.tmux.conf \
|
| 41 |
&& echo 'set -g status-left-length 50' >> ~/.tmux.conf \
|
| 42 |
-
&& echo 'set -g status-left "#[fg=#000000,bg=#00FFFF,bold]
|
|
|
|
| 43 |
&& echo 'set -g pane-border-style fg="#004444"' >> ~/.tmux.conf \
|
| 44 |
&& echo 'set -g pane-active-border-style fg="#00FFFF",bg=default' >> ~/.tmux.conf
|
| 45 |
|
| 46 |
-
#
|
| 47 |
COPY --chown=user:user . $HOME/app
|
| 48 |
RUN chmod +x $HOME/app/start.sh
|
| 49 |
|
| 50 |
-
#
|
| 51 |
RUN grep -q '[a-zA-Z]' requirements.txt && pip3 install --no-cache-dir -r requirements.txt || echo "No packages."
|
| 52 |
|
| 53 |
EXPOSE 7860
|
|
|
|
| 1 |
+
# Base Image
|
| 2 |
FROM ubuntu:22.04
|
| 3 |
|
| 4 |
+
# Environment Variables
|
| 5 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 6 |
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
|
| 7 |
|
| 8 |
+
# Install Tools & Aesthetics
|
| 9 |
RUN apt-get update && apt-get install -y \
|
| 10 |
curl wget git htop btop nano vim python3 python3-pip sudo zsh tmux unzip locales \
|
| 11 |
figlet lolcat neofetch cmatrix tty-clock \
|
| 12 |
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
| 13 |
|
| 14 |
+
# Web Terminal (ttyd) Setup
|
| 15 |
RUN wget https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64 -O /usr/local/bin/ttyd \
|
| 16 |
&& chmod +x /usr/local/bin/ttyd
|
| 17 |
|
| 18 |
+
# Create User
|
| 19 |
RUN useradd -m -s /bin/zsh -u 1000 user \
|
| 20 |
&& echo "user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
| 21 |
|
|
|
|
| 24 |
ENV PATH="/home/user/.local/bin:/usr/games:${PATH}"
|
| 25 |
WORKDIR $HOME/app
|
| 26 |
|
| 27 |
+
# Oh My Zsh and Plugins
|
| 28 |
RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended \
|
| 29 |
&& git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions \
|
| 30 |
&& git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
|
| 31 |
|
| 32 |
+
# Zsh Configuration
|
| 33 |
RUN sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="ys"/g' ~/.zshrc \
|
| 34 |
&& sed -i 's/plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting)/g' ~/.zshrc \
|
| 35 |
+
&& echo 'alias matrix="cmatrix -b -C cyan"' >> ~/.zshrc
|
| 36 |
|
| 37 |
+
# Tmux TRON Theme & MOUSE SUPPORT (Crucial for Scrolling/Clicking)
|
| 38 |
RUN echo 'set -g default-terminal "screen-256color"' > ~/.tmux.conf \
|
| 39 |
+
&& echo 'set -g mouse on' >> ~/.tmux.conf \
|
| 40 |
+
&& echo 'set -g status-bg "#001111"' >> ~/.tmux.conf \
|
| 41 |
&& echo 'set -g status-fg "#00FFFF"' >> ~/.tmux.conf \
|
| 42 |
&& echo 'set -g status-left-length 50' >> ~/.tmux.conf \
|
| 43 |
+
&& echo 'set -g status-left "#[fg=#000000,bg=#00FFFF,bold] 🌐 ENCOM OS [#S] #[bg=#001111] "' >> ~/.tmux.conf \
|
| 44 |
+
&& echo 'set -g status-right "#[fg=#00FFFF]%d-%b-%Y #[fg=#00FFFF]%H:%M:%S "' >> ~/.tmux.conf \
|
| 45 |
&& echo 'set -g pane-border-style fg="#004444"' >> ~/.tmux.conf \
|
| 46 |
&& echo 'set -g pane-active-border-style fg="#00FFFF",bg=default' >> ~/.tmux.conf
|
| 47 |
|
| 48 |
+
# Copy project files
|
| 49 |
COPY --chown=user:user . $HOME/app
|
| 50 |
RUN chmod +x $HOME/app/start.sh
|
| 51 |
|
| 52 |
+
# Install Python Requirements
|
| 53 |
RUN grep -q '[a-zA-Z]' requirements.txt && pip3 install --no-cache-dir -r requirements.txt || echo "No packages."
|
| 54 |
|
| 55 |
EXPOSE 7860
|