|
FROM ubuntu:22.04 |
|
|
|
ENV DEBIAN_FRONTEND=noninteractive LANG=en_US.UTF-8 |
|
|
|
Install system packages including LXDE and XRDP |
|
|
|
RUN apt update && apt upgrade -y && |
|
apt install -y |
|
sudo |
|
curl |
|
wget |
|
git |
|
gnupg |
|
openssh-client |
|
neofetch |
|
tmate |
|
python3 |
|
python3-pip |
|
ca-certificates |
|
software-properties-common |
|
build-essential |
|
procps |
|
xz-utils |
|
net-tools |
|
make |
|
ffmpeg |
|
nano |
|
vim |
|
htop |
|
unzip |
|
zip |
|
iputils-ping |
|
tree |
|
lsof |
|
netcat |
|
tmux |
|
locales |
|
lxde |
|
xrdp && |
|
locale-gen en_US.UTF-8 && |
|
apt clean && rm -rf /var/lib/apt/lists/* |
|
|
|
Configure XRDP to use LXDE session |
|
|
|
RUN sed -i 's|port=3389|port=3389|g' /etc/xrdp/xrdp.ini && |
|
echo "lxsession -s LXDE -e LXDE" > /etc/xrdp/startwm.sh && |
|
chmod +x /etc/xrdp/startwm.sh |
|
|
|
Install Node.js v22 and npm |
|
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && |
|
apt update && apt install -y nodejs && |
|
npm install -g npm && |
|
apt clean && rm -rf /var/lib/apt/lists/* |
|
|
|
Install speedtest-cli |
|
|
|
RUN pip3 install --no-cache-dir speedtest-cli |
|
|
|
Create user 'draco' with sudo rights and fixed UID |
|
|
|
RUN useradd -m -s /bin/bash -u 1000 draco && |
|
echo "draco:draco" | chpasswd && |
|
usermod -aG sudo draco |
|
|
|
Setup SSH keys for draco user |
|
|
|
RUN mkdir -p /home/draco/.ssh && |
|
ssh-keygen -t rsa -f /home/draco/.ssh/id_rsa -N '' && |
|
chown -R draco:draco /home/draco/.ssh |
|
|
|
USER draco WORKDIR /home/draco |
|
|
|
Create tmate auto-reconnect launcher |
|
|
|
RUN cat << 'EOF' > run_tmate.sh |
|
|
|
Expose RDP and Hugging Face web port |
|
|
|
EXPOSE 3389 7890 |
|
|
|
Start tmate loop and simple HTTP server on port 7890 |
|
|
|
CMD ["bash", "-c", "./run_tmate.sh & python3 -m http.server 7890"] |
|
|
|
|