gansta2 / Dockerfile
Elliotasdasdasfasas's picture
Web Terminal Deployment for manual SSD mount
333de01
FROM ubuntu:22.04
# Avoid prompts during apt installs
ENV DEBIAN_FRONTEND=noninteractive
# Update and install dependencies
RUN apt-get update && apt-get install -y \
curl \
git \
wget \
sudo \
python3 \
python3-pip \
fuse \
sshfs \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Install Cloudflared
RUN curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && \
dpkg -i cloudflared.deb && \
rm cloudflared.deb
# Install ttyd for Web Terminal
RUN wget https://github.com/tsl0922/ttyd/releases/download/1.7.4/ttyd.x86_64 -O /usr/local/bin/ttyd && \
chmod +x /usr/local/bin/ttyd
# Create non-root user
RUN useradd -m -s /bin/bash -u 1000 user && \
usermod -aG sudo user && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# Setup working directory and install pip requirements
WORKDIR /code
COPY --chown=user:user ./requirements.txt /code/requirements.txt
RUN pip3 install --no-cache-dir -r /code/requirements.txt
# Copy all CTM Codebase
COPY --chown=user:user . /code
USER user
ENV HOME=/home/user
ENV PATH=/home/user/.local/bin:$PATH
# Start ttyd on port 7860 to provide a bash web terminal
CMD ["ttyd", "-p", "7860", "-W", "bash"]