FROM pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel

# 安装基础工具包和SSH服务
RUN apt-get update && apt-get install -y \
    curl \
    unzip \
    openssh-server \
    sudo \
    vim \
    nano \
    git \
    tmux \
    wget \
    screen \
    tree \
    htop \
    ncdu \
    git-lfs \
    plocate \
    && apt-get clean

# 安装AWS CLI工具
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \
&& unzip awscliv2.zip \
&& ./aws/install \
&& rm -rf awscliv2.zip aws/

# 配置SSH服务
RUN mkdir /var/run/sshd

# 设置root用户密码
RUN echo 'root:root' | chpasswd

# 创建dev用户并配置
RUN useradd -m -s /bin/bash dev && echo 'dev:dev' | chpasswd

# 给予dev用户sudo权限
RUN usermod -aG sudo dev

# 配置系统环境变量
RUN echo "export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" >> /home/dev/.bashrc
RUN echo "export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" >> /home/dev/.profile

# 配置AWS S3访问地址
RUN echo "export AWS_ENDPOINT_URL_S3=http://dingofs.hdd.mas.zetyun.cn:8081" >> /home/dev/.bashrc
RUN echo "export AWS_ENDPOINT_URL_S3=http://dingofs.hdd.mas.zetyun.cn:8081" >> /home/dev/.profile

# 复制用户配置文件
# ssh 免密登录
COPY id_rsa.pub /home/dev/.ssh/authorized_keys
# aws 配置
COPY credentials /home/dev/.aws/credentials

# 修改目录所有权
RUN chown -R dev:dev /home/dev

# 配置SSH服务安全设置
RUN sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
RUN sed -i 's@session    required     pam_loginuid.so@session    optional     pam_loginuid.so@g' /etc/pam.d/sshd

# 暴露SSH端口
EXPOSE 22

# 启动SSH服务
CMD ["/usr/sbin/sshd", "-D"]
