基于docker/虚拟机的esp32远程工作流
工作流框图

背景说明
- 为什么需要这套工作流--为了满足高效和灵活的开发方式
- 因为我经常需要在公司和家里切换不同的电脑工作,所以编译环境需要在远程主机上,这样不同的工作机器都能访问相同的工作编译环境。
 - 因为esp32官方推荐的还是在linux下编译,所以最简单的就是我们的编译环境和工具链还是在linux下。但是我们日常的编码和硬件烧录还是在本地windows和mac的居多。所以就有了这一套本地环境和远程docker环境相互配合的工作流。我们可以在远程编译环境使用命令行高效编译,本地继续使用VSC等工具编码和烧录。
 
 - 为什么用docker而不是虚拟机?
- 因为docker更轻量小巧,结合hub.docker.com 用起来也更方便些,更具有灵活性。当然如果你就是喜欢用VM,也是可以的,这个流程仍然适用,只是挂载宿主的目录方式有所不同而已。
 - 使用docker另外一个好处是,你可以很方便的将你配置的开发环境通过hub.docker.com分享给需要的人。
 
 
工作流步骤
- 选择对应的linux系统镜像创建我们的docker镜像,这里我们推荐选择ubuntu 16.04系统。
 - 启动时,我们用 -v 参数将远程宿主机的本地目录挂载进docker系统。
 - 按照官方esp32的编译环境要求,部署相应的工具链和环境。部署到我们映射的目录中,这样相关的工具和代码等都可以在宿主机里面可见,并且可访问。
 - 将挂载的目录通过samba或者sshfs共享给远程的编码机器(window或者MAC)环境,并且挂载到本地虚拟磁盘路径上。
 - 日常的编码和烧录,我们就可以像访问本都路径一样访问远程vps的开发路径。使用VSC编码,或者download tool进行开发板烧录。
 
docker镜像
最后,如果你对使用docker环境开发esp32感兴趣,也可以直接使用我目前在用的针对esp32的docker开发镜像。一键部署,开箱即用。
docker pull hiproz/ubuntu-esp32
参考
esp32 ubuntu开发环境搭建
docker常用操作命令
windows下实现esp32下载
sshfs的安装
基于docker/虚拟机的esp32远程工作流的更多相关文章
- 一台虚拟机,基于docker搭建大数据HDP集群
		
前言 好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做.这个可以参考之前写得关于我大数据毕业设计的文章.这篇文章是将对之前的毕设进行优化. 个人觉得可以分为两个部分.第一个部分就是基础的平台 ...
 - 基于docker的 Hyperledger Fabric 多机环境搭建(上)
		
环境:ubuntu 16.04 Docker 17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...
 - 基于 Docker 的微服务架构实践
		
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...
 - vagrant特性——基于docker开发环境(docker和vagrant的结合)-1-基本使用
		
Docker vagrant提供了使用Docker作为provider(其他的provider有virtualBox.VMware\hyper-V等)的开箱即用支持.这允许你的开发环境由Docker容 ...
 - vagrant特性——基于docker开发环境(docker和vagrant的结合)-0-简介
		
原文https://www.hashicorp.com/blog/feature-preview-docker-based-development-environments Feature Previ ...
 - 基于 Docker 和 GitLab 的前端自动化部署实践笔记
		
基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...
 - Flynn初步:基于Docker的PaaS台
		
Flynn它是一个开源PaaS台,无论要部署的应用程序,你可以建立自己的主动性Docker容器集群的实现,能特性与组件设计大量參考了传统的PaaS平台Heroku.本文旨在从使用动机.基本对象.层次架 ...
 - 基于docker 如何部署surging分布式微服务引擎
		
1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微 ...
 - 基于Docker的Mysql主从复制搭建
		
来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg 为什么基于Docker搭建? 资源有 ...
 
随机推荐
- C++ 错误解决 —— internal compiler error
			
问题: g++ 编译时,报错: g++: internal compiler error: Killed (program cc1plus) 出错原因: 出错的原因是(虚拟机)运行内存不足,而大量te ...
 - Python [拷贝copy / 深度拷贝deepcopy] | 可视化理解
			
Python 是一门面向对象的语言, 在Python一切皆对象. 每一个对象都有由以下三个属性组成: ------------------------------------------------- ...
 - 内核的bootmem内存分配器【转】
			
转自:http://blog.csdn.net/zmxiangde_88/article/details/8041040 版权声明:本文为博主原创文章,未经博主允许不得转载. 在内核启动期间,伙伴系统 ...
 - iOS键盘中英文切换键盘高度获取通知方法
			
iOS键盘中英文切换键盘高度获取通知方法, 有需要的朋友可以参考下. 注册通知 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppea ...
 - 使用sqlparse分析SQL语句,及自己写的SQL分析语句
			
备忘, 以后写的时候可以参考. #!/usr/bin/env python # -*- coding: utf-8 -*- import sqlparse import re sql = " ...
 - Codeforces Gym101502 B.Linear Algebra Test-STL(map)
			
B. Linear Algebra Test time limit per test 3.0 s memory limit per test 256 MB input standard input ...
 - (1)sqlite基础
			
一.安装sqlite 下载页面:http://www.sqlite.org/download.html 1.下载 sqlite-tools-win32-*.zip 和 sqlite-dll-win32 ...
 - Codeforces 635D Factory Repairs【树状数组】
			
又是看了很久的题目... 题目链接: http://codeforces.com/contest/635/problem/D 题意: 一家工厂生产维修之前每天生产b个,维修了k天之后每天生产a个,维修 ...
 - Skiing(最短路)
			
poj——3037 Skiing Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4921 Accepted: 1315 ...
 - BZOJ1010玩具裝箱Toy
			
@[斜率優化] Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中. P ...