ubuntu xrdp
parent
c24bc6007c
commit
537e144da3
@ -0,0 +1,44 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# 更新软件包列表并安装所需软件包,包括 Chromium 浏览器
|
||||
RUN apt-get update && apt-get install -y \
|
||||
xfce4 \
|
||||
xfce4-goodies \
|
||||
xrdp \
|
||||
sudo \
|
||||
wget \
|
||||
ssh \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 下载并安装 Chromium 浏览器的 Debian 包
|
||||
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y ./google-chrome-stable_current_amd64.deb \
|
||||
&& apt-get -f install -y \
|
||||
&& rm google-chrome-stable_current_amd64.deb \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 移除不需要的电源管理器
|
||||
RUN apt-get remove -y xfce4-power-manager
|
||||
|
||||
# 设置默认终端模拟器
|
||||
RUN update-alternatives --set x-terminal-emulator /usr/bin/xfce4-terminal.wrapper
|
||||
|
||||
# 修改 xrdp 配置文件以支持更高的颜色深度
|
||||
RUN cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak \
|
||||
&& sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini \
|
||||
&& sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini \
|
||||
&& sed -i '/X11/s/^/#/' /etc/xrdp/startwm.sh \
|
||||
&& echo "startxfce4" >> /etc/xrdp/startwm.sh
|
||||
|
||||
# 复制启动脚本并设置可执行权限
|
||||
COPY start.sh /start.sh
|
||||
RUN chmod +x /start.sh
|
||||
|
||||
# 设置容器启动时运行的命令
|
||||
CMD ["/start.sh"]
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
services:
|
||||
ubuntu-xfce-xrdp:
|
||||
build: .
|
||||
image: ubuntu-xfce-xrdp:latest
|
||||
container_name: ubuntu-xfce-xrdp-3386
|
||||
ports:
|
||||
- "3386:3389"
|
||||
- "11022:22"
|
||||
environment:
|
||||
- USERNAME=wcl
|
||||
- PASSWORD=123
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities: [gpu]
|
||||
shm_size: 1g
|
||||
restart: unless-stopped
|
||||
@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Function to create user
|
||||
create_user() {
|
||||
# Check if USERNAME and PASSWORD are set
|
||||
if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
|
||||
echo "USERNAME and PASSWORD environment variables must be set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if user already exists
|
||||
if id "$USERNAME" &>/dev/null; then
|
||||
echo "User $USERNAME already exists"
|
||||
else
|
||||
# Create user with specified username and password
|
||||
echo "Creating user: $USERNAME"
|
||||
useradd -m -s /bin/bash "$USERNAME"
|
||||
echo "$USERNAME:$PASSWORD" | chpasswd
|
||||
usermod -aG sudo "$USERNAME"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to configure XRDP
|
||||
configure_xrdp() {
|
||||
# Start XRDP service
|
||||
service xrdp start
|
||||
}
|
||||
|
||||
# Function to configure SSH
|
||||
configure_ssh() {
|
||||
# Start SSH service
|
||||
service ssh start
|
||||
}
|
||||
|
||||
# Main script execution
|
||||
create_user
|
||||
configure_xrdp
|
||||
configure_ssh
|
||||
|
||||
# Keep the container running
|
||||
tail -f /dev/null
|
||||
Loading…
Reference in New Issue