本文使用Linux容器代替linux虚拟机,以ubuntu20.04为例

相关链接:

  1. Windows系统下的linux容器

使用Dockerfile来创建一个自定义的镜像

Dockerfile是一个包含一组用于组装系统的指令的配置文件。通过Dockerfile,我们可以自动化地在任何其他机器上重建相同的编译环境。

(1)此示例中的Dockerfile文件
Dockerfile需要包含以下内容

  1. 在Visual Studio安装必备组件
  2. 配置ssh ```dockerfile

    our local base image

    FROM ubuntu:20.04

something infomations

MAINTAINER geodoergeodoer@163.com LABEL name = “C++ Linux development environment” description = “Container for use with Visual Studio”

use aliyun and install build dependencies

RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \ && set -x; buildDeps=’rsync zip g++ make cmake gdb’ \ && apt-get update \ && apt-get install -y $buildDeps \ && apt-get purge -y —auto-remove $buildDeps

install and configure SSH for communication with Visual Studio

RUN apt-get install -y openssh-server \ && useradd -m -d /home/geodoer -s /bin/bash -G sudo geodoer \ && echo “geodoer:geodoer123” | chpasswd \ && mkdir -p /var/run/sshd \ && echo “PasswordAuthentication yes” >> /etc/ssh/sshd_config && ssh-keygen -A

expose port 22

EXPOSE 22

Copy File

COPY ./3rdlib_linux /cpp/3rdlib_linux ENV Cpp_3rdlib_DIR “/cpp/3rdlib_linux”

start ssh and enter bash

ENTRYPOINT [ “sh”, “-c”, “service ssh start; bash”]

  1. **(2)然后我们可以基于这个Dockerfile来创建一个自定义的系统镜像**
  2. ```dockerfile
  3. docker build -t ubuntu-cppdev:0.1 .

(3)创建容器

  1. docker run -it -p 5000:22 --name cppdev -d ubuntu-cppdev:0.1

配置ssh连接

image.png

  • 密码是geodoer123

后面的步骤就和Visual Studio+CMake跨平台开发一样了。

记录:写Dockerfile的过程

如果你没有足够把握,不能够直接写正确的Dockerfile。
可以先执行docker命令,确保它能工作,再翻译成Dockerfile

  1. #----------------创建容器
  2. docker run -it -p 5000:22 --name cppdev-vs-ubuntu ubuntu:20.04 /bin/bash
  3. #----------------安装工具
  4. apt-get update
  5. #----------------安装、配置SSH
  6. apt-get install -y openssh-server
  7. #启动前手动创建/var/run/sshd,不然启动sshd的时候会报错
  8. mkdir -p /var/run/sshd
  9. #允许密码登录
  10. echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config && ssh-keygen -A
  11. #创建一个用户,用于ssh登录
  12. useradd -m -d /hone/geodoer -s /bin/bash -G sudo geodoer
  13. #设置该用户的密码
  14. echo "geodoer:geodoer123" | chpasswd
  15. #设置开机自启
  16. /lib/systemd/systemd-sysv-install enable ssh
  17. #启动ssh
  18. service ssh start
  19. #----------------安装Visual Studio CMake所要求环境
  20. apt-get install -y rsync
  21. apt-get install -y zip
  22. apt-get install -y g++ make cmake gdb