FROM ubuntu:22.04 # 设置环境变量避免交互式提示 ENV DEBIAN_FRONTEND=noninteractive # 更新系统并安装基础工具 RUN apt-get update && apt-get install -y \ openssh-server \ sudo \ curl \ wget \ git \ vim \ ca-certificates \ gnupg \ lsb-release \ && rm -rf /var/lib/apt/lists/* # 安装 Python 3 RUN apt-get update && apt-get install -y \ python3 \ python3-pip \ python3-dev \ && rm -rf /var/lib/apt/lists/* # 创建 python 软链接 RUN ln -s /usr/bin/python3 /usr/bin/python # 安装 Node.js (使用 NodeSource 仓库安装最新 LTS 版本) RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \ && apt-get install -y nodejs \ && rm -rf /var/lib/apt/lists/* # 安装 Go (版本 1.21) ENV GO_VERSION=1.21.6 RUN wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz \ && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz \ && rm go${GO_VERSION}.linux-amd64.tar.gz # 设置 Go 环境变量 ENV PATH=$PATH:/usr/local/go/bin ENV GOPATH=/root/go ENV GOBIN=$GOPATH/bin # 配置 SSH RUN mkdir /var/run/sshd # 设置 root 密码 (建议修改为更安全的密码) RUN echo 'root:password' | chpasswd # 允许 root 用户通过 SSH 登录 RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config # SSH 登录时不使用 PAM RUN sed -i 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd # 暴露 SSH 端口 EXPOSE 22 # 启动 SSH 服务 CMD ["/usr/sbin/sshd", "-D"]