cmake下载地址:
https://cmake.org/files/v3.22/cmake-3.22.4-linux-x86_64.tar.gz
构建Dockerfile:
FROM centos:7.4.1708
# https://cmake.org/files/v3.22/cmake-3.22.4-linux-x86_64.tar.gz
ADD [ "cmake-3.22.4-linux-x86_64.tar.gz", "/usr/local/" ]
COPY [ "docker-entrypoint.sh", "/usr/local/bin/" ]
RUN set -eux; \
echo "root:develop" | chpasswd; \
yum -y install gcc \
gcc-c++ \
gdb \
make \
openssh-server \
rsync; \
ssh-keygen -A; \
chmod +x /usr/local/bin/*; \
yum clean all; \
yum makecache; \
mv /usr/local/cmake-3.22.4-linux-x86_64 /usr/local/cmake-3.22.4; \
rm -f /run/nologin; \
rm -rf /var/cache/yum; \
rm -f /root/{anaconda-ks.cfg,anaconda-post.log,original-ks.cfg}; \
rm -f /anaconda-post.log; \
mkdir /var/run/sshd
FROM scratch
COPY --from=0 / /
ENV LANG="zh_CN.UTF-8" \
TZ="Asia/Shanghai"
ENV SSH_USERNAME="develop" \
SSH_PASSWD="develop" \
SSH_UID="1000" \
SSH_GROUP="develop" \
SSH_GID="1000"
ENTRYPOINT [ "docker-entrypoint.sh" ]
EXPOSE 22
CMD [ "/usr/sbin/sshd", "-D" ]
docker-entrypoint.sh 内容如下:
#!/bin/bash
set -eux
cat>/etc/profile.d/env.sh<<-EOF
#!/bin/bash
export PATH="\${PATH}:/usr/local/cmake-3.22.4/bin" LANG="zh_CN.UTF-8" TZ="Asia/Shanghai"
EOF
groupadd -g ${SSH_GID} ${SSH_GROUP}
useradd -d /home/${SSH_USERNAME} -m -c "Develop environment." -u ${SSH_UID} -g ${SSH_GID} -s /bin/bash ${SSH_USERNAME}
echo "${SSH_USERNAME}:${SSH_PASSWD}" | chpasswd
exec "$@"
构建目录下包括如下三个文件:
cmake-3.22.4-linux-x86_64.tar.gz docker-entrypoint.sh Dockerfile
构建脚本:
docker build --rm -t cpp-dev:1.0 .
启动脚本:
docker run -d --restart always --hostname cpp-dev -e SSH_UID=`id -u` -e SSH_GID=`id -g` -e SSH_USERNAME=`whoami` -e SSH_PASSWD="dev123" -e SSH_GROUP=`id -g -n` --name cpp-dev -v ${HOME}/workspace:/workspace -p 2022:22 cpp-dev:1.0
连接报错:
Host key verification failed.
执行脚本:
ssh-keygen -f "/home/username/.ssh/known_hosts" -R [192.168.10.168]:2022
其他操作系统镜像环境大同小异。