terminal2 / Dockerfile
coteerratu's picture
Update Dockerfile
ad1c7bf verified
raw
history blame
1.46 kB
# 使用 Ubuntu 作为基础镜像
FROM ubuntu:latest
# 更新包列表并安装必要的软件包
RUN apt-get update && apt-get install -y \
bash \
wget \
ca-certificates \
sudo \
curl \
python3 \
python3-venv \
build-essential \
nodejs \
npm \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 创建虚拟环境
RUN python3 -m venv /opt/venv
# 激活虚拟环境并安装 setuptools
RUN /opt/venv/bin/pip install --upgrade pip setuptools
# 更新 npm
RUN /opt/venv/bin/pip install nodeenv
RUN . /opt/venv/bin/activate && nodeenv -p --node=18.20.4
# 激活虚拟环境并安装 wetty 及其依赖
RUN . /opt/venv/bin/activate && npm install -g wetty
# 创建 /data 目录并赋予用户 1001 权限
RUN mkdir -p /data && chown -R 1001:1001 /data
# 创建用户 1001 并设置工作目录
RUN useradd -u 1001 -d /data -m -s /bin/bash user1001
# 允许用户 1001 使用 sudo
RUN usermod -aG sudo user1001
# 配置 sudo 不需要 tty 并且不需要密码
RUN echo 'Defaults:user1001 !requiretty' >> /etc/sudoers
RUN echo 'user1001 ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
# 切换到用户 1001 并设置工作目录
USER 1001
WORKDIR /data
# 暴露端口
EXPOSE 3000
# 使用 wetty 运行 bash,并修改 PS1 环境变量
CMD ["/opt/venv/bin/wetty", "--base", "/wetty", "--command", "/bin/bash"]
# 创建 .bashrc 文件并设置 PS1 环境变量
RUN echo 'PS1="online-terminal:\\w\\$ "' > /data/.bashrc