前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 CLion 远程开发中使用 Docker 快速搭建基于 CentOS 7.4.1708 的 C++ 开发环境

在 CLion 远程开发中使用 Docker 快速搭建基于 CentOS 7.4.1708 的 C++ 开发环境

作者头像
耕耘实录
发布2022-05-18 13:52:59
1.4K0
发布2022-05-18 13:52:59
举报
文章被收录于专栏:耕耘实录耕耘实录

cmake下载地址:

代码语言:javascript
复制
https://cmake.org/files/v3.22/cmake-3.22.4-linux-x86_64.tar.gz

构建Dockerfile:

代码语言:javascript
复制
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 内容如下:

代码语言:javascript
复制
#!/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 "$@"

构建目录下包括如下三个文件:

代码语言:javascript
复制
cmake-3.22.4-linux-x86_64.tar.gz  docker-entrypoint.sh  Dockerfile

构建脚本:

代码语言:javascript
复制
docker build --rm -t cpp-dev:1.0 .

启动脚本:

代码语言:javascript
复制
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

连接报错:

代码语言:javascript
复制
Host key verification failed.

执行脚本:

代码语言:javascript
复制
ssh-keygen -f "/home/username/.ssh/known_hosts" -R [192.168.10.168]:2022

其他操作系统镜像环境大同小异。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档