基于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搭建? 资源有 ...
随机推荐
- bzoj 1069 凸包+旋转卡壳
题目大意 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成 的多边形面积最大. 分析 枚举对角线的一个端点 另一个端点开始转 转的时候求出对角线左边面积 ...
- Filter里面实现未登录跳转,已登录权限判断
package com.erichfund.cljjfof.server.util; import java.io.IOException; /** * @author 作者 zhuzhengquan ...
- JS和CS互访【后台前台代码调用JavaScript变量以及JavaScript调用代码变量】
原文发布时间为:2008-10-13 -- 来源于本人的百度文章 [由搬家工具导入] .如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问Ja ...
- vue.js源码学习分享(九)
/* */ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);//获取arrayMethods的属性名称 /** * By defaul ...
- 标准C程序设计七---105
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- Ubuntu16 编译源码出错 unsupported reloc 43
错误如下 prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6//x86_64-linux/include/c++/4.6/bits/basi ...
- Python入门--16--模块
模块的定义: 模块是一个包含所有你定义的函数和变量的文件,其后缀是.py.模块可以被别的程序引入,以使用该模块中的函数等功能 比如 import random secret=random.randin ...
- AxureRP8 实现时间功能
利用AxureRP8中空间的动态面板的状态改变时间设置文本的值,从而实现时间功能,如下内容. 1.新建index页面,如已有index页面忽略这步即可. 2.拖入一个文本标签,将文本标签的名称命名为: ...
- Python递归函数和二分查找算法
递归函数:在一个函数里在调用这个函数本身. 递归的最大深度:998 正如你们刚刚看到的,递归函数如果不受到外力的阻止会一直执行下去.但是我们之前已经说过关于函数调用的问题,每一次函数调用都会产生一个属 ...
- java中正则表达式要进行转义的字符。
/** * 转义正则特殊字符 ($()*+.[]?\^{},|) * * @param keyword * @return */public static String escapeExprSpeci ...