一、Dockerfile
# 指定基础镜像
FROM centos:7
# 配置环境变量和本地软件
ENV PACKGE_DIR=/usr/local
# j安装包放在和Dockerfile同级目录下
ENV JAVA_PACKGE=jdk-8u181-linux-x64.tar.gz
ENV NODEJS_PACKGE=node-v16.20.0-linux-x64.tar.gz
ENV PYTHON_PACKGE=Python-3.9.6.tar.xz
# 拷贝安装包
COPY ./$JAVA_PACKGE $PACKGE_DIR
COPY ./$NODEJS_PACKGE $PACKGE_DIR
COPY ./$PYTHON_PACKGE $PACKGE_DIR
# 安装ssh
RUN yum -y install wget
RUN rm -rf /etc/yum.repos.d/*
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum clean all
RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN echo "root:root" | chpasswd
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN mkdir /var/run/sshd
# 安装JDK
RUN cd $PACKGE_DIR \
&& tar -xf ./$JAVA_PACKGE \
&& mv ./jdk1.8.0_181 ./jdk8 # 解压后的目录名为jdk1.8.0.181
# 安装maven
RUN cd $PACKGE_DIR \
&& wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz \
&& tar -xf ./apache-maven-3.8.8-bin.tar.gz \
&& mv ./apache-maven-3.8.8 ./maven \
&& mkdir -p /usr/local/maven/repository \
&& mv ./maven/conf/settings.xml ./maven/conf/settings.xml.bak \
&& rm -rf ./apache-maven-3.8.8-bin.tar.gz
# 复制仓库配置
COPY ./mavenset/settings.xml $PACKGE_DIR/maven/conf/
# 安装NodeJS
RUN cd $PACKGE_DIR \
&& tar -xf ./$NODEJS_PACKGE \
&& mv ./node-v16.20.0-linux-x64 ./nodeJS
# 安装python3
RUN yum -y install openssl-devel bzip2-devel ncurses-devel readline-devel sqlite-devel libffi-devel xz-devel gdbm-devel tk-devel gcc automake autoconf libtool make
RUN cd $PACKGE_DIR \
&& tar -xf ./$PYTHON_PACKGE
RUN cd $PACKGE_DIR/Python-3.9.6 \
&& ./configure prefix=$PACKGE_DIR/python3.9 --with-ensurepip=install \
&& make clean \
&& make \
&& make install
# 安装git
RUN yum -y install git
RUN git config --global user.name xiaojy \
&& git config --global user.email xiaojy@xiao.com
# RUN ln -sf $PACKGE_DIR/python3.9/bin/python3 /usr/bin/python
# 删除安装包
RUN rm -rf $PACKGE_DIR/$JAVA_PACKGE
RUN rm -rf $PACKGE_DIR/$NODEJS_PACKGE
RUN rm -rf $PACKGE_DIR/$PYTHON_PACKGE
RUN rm -rf $PACKGE_DIR/Python-3.9.6
# 配置环境变量
RUN echo "export JAVA_HOME=$PACKGE_DIR/jdk8" >> /etc/profile
RUN echo 'export PATH=$PATH:$JAVA_HOME/bin'>> /etc/profile
RUN echo "export NODE_HOME=$PACKGE_DIR/nodeJS" >> /etc/profile
RUN echo 'export PATH=$PATH:$NODE_HOME/bin'>> /etc/profile
RUN echo "export PYTHON_HOME=$PACKGE_DIR/python3.9" >> /etc/profile
RUN echo 'export PATH=$PATH:$PYTHON_HOME/bin'>> /etc/profile
RUN echo "export MAVEN_HOME=$PACKGE_DIR/maven" >> /etc/profile
RUN echo 'export PATH=$PATH:$MAVEN_HOME/bin'>> /etc/profile
# 暴露端口
EXPOSE 22
# 入口
CMD ["/usr/sbin/sshd", "-D"]
docker build -t centos-ssh .
docker run --name cent -p 2222:22 -d centos-ssh