通过ssh远程到docker内开发

本文章操作系统是ubuntu 16.04,IDE是visual studio 2019或最新版的vscode

 

一,安装ssh

1,进入docker容器,安装ssh

apt-get update;apt-get install openssh-server

注一:为了能从外部访问ssh,需要在运行容器时,把ssh端口映射出来

注二:由于运行docker容器时,使用的是root账号,所以还需要配置ssh权限

sed -i 's+PermitRootLogin prohibit-password+PermitRootLogin yes' /etc/ssh/sshd-config

 

2,启动ssh

# 查看是否已安装ssh
ps -e | grep ssh

# 启动ssh
service ssh start

或者

/etc/init.d/ssh start

 

二,安装环境

1 .net core 开发

由于.net core 本身是跨平台的,所以完全可以在本机调试好了,再发布到远程。当然如果你的程序运行依赖一些外部环境,比如硬件,或者需要读取文件等等,则可能还是需要能远程调试。(.net core 远程调试另一篇再写吧)

 

1.1 将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库

wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb

1.2 安装运行时

apt-get update;apt-get install -y apt-transport-https && apt-get update && apt-get install -y {product}-{type}-{version}

# product 产品类型,可选项:
    dotnet
    aspnetcore

# type 类型,可选项:
    sdk
    runtime

# version 版本


举例:

apt-get update;apt-get install -y apt-transport-https && apt-get update && apt-get install -y aspnetcore-runtime-3.1
    

 

2 c++ 开发

c++ 跨平台开发,有多种选择,微软公司建议选用cmake项目,这也是世界上最受欢迎的方式。

2.1 远程环境

2.1.1 至少为 3.8 的cmake

# 下载cmake
wget https://github.com/microsoft/CMake/releases/download/v3.19.4268486/cmake-3.19.4268486-MSVC_2-Linux-x86.sh

# 设为可执行
chmod +x cmake-3.19.4268486-MSVC_2-Linux-x86.sh

# 安装
sudo ./cmake-3.19.4268486-MSVC_2-Linux-x86.sh --skip-license --prefix=/usr


# 注:
--prefix  指定安装目录

2.1.2 其他公共依赖

# gdb,make,ninjia-build,rsync,zip,cmake,或者g++或clang
sudo apt-get update;apt-get install g++ gdb make ninja-build rsync zip

 

2.1.3 常见问题

a,对于WSL,在本机编译时,可能会遇到权限问题,这是因为如果你的源码放在windows文件夹里,挂载到WSL,而windows文件系统和linux文件系统不一样导致的,解决方法:

# 编辑 /etc/wsl.conf

[automount]
options = "metadata"

 

2.2 本地环境

2.2.1 配置ssh连接

2.2.2 配置cmake

在管理配置里,点那个绿色的加号,有很多选项,分为WSL和非WSL下的开发,以及不同类型编译器的选择。

关于编译器,大家可以网上搜一下,了解了解,还是很有帮助的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值