基于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搭建? 资源有 ...
随机推荐
- ace模板dataTables_length控制是否显示分页
默认的ace中配置的是7列之后才显示分页的,其实是可控的,如下: aoColumns这个参数的含义: 排序控制 $(document).ready(function() {$('#example'). ...
- linux c 正则表达式
#include <stdio.h> #include <regex.h> #include <mhash.h> int main() { regex_t rgx; ...
- 转 C++中不能声明为虚函数的有哪些函数
传送门 C++中不能声明为虚函数的有哪些函数 常见的不不能声明为虚函数的有:普通函数(非成员函数):静态成员函数:内联成员函数:构造函数:友元函数. 1.为什么C++不支持普通函数为虚函数? 普通函数 ...
- git超详细教程【转】
转自:http://blog.csdn.net/liuwengai/article/details/52072344 GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流 ...
- postgresql 10 分页
示例: select * from test limit 2 offset 2; limit:指查多少条数据 offset:从下标多少开始查,下标从0开始,不能为负数. offset计算公式: var ...
- hdu 4183(网络流)
Pahom on Water Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 使用redis-stat来监控redis实例
https://blog.csdn.net/xiao_jun_0820/article/details/78189576 https://blog.csdn.net/u010022051/articl ...
- Linux 性能优化解析
前情概述 进程调度 老板 cpu 任劳任怨的打工仔 线程 工作在做什么 可运行队列 拥有的工作清单 上下文切换 和老板沟通以便得到老板的想法并及时调整自己的工作 中断 部分工作做完以后还需要及时向老板 ...
- git grep 或者 ag 进行快速代码搜索
1.git grep foo 会自动map所有包含foo的文件 2.git grep -n foo 显示行号 3.git grep --name-only foo 只显示文件名 4.git grep ...
- CDOJ 92 Journey LCA乱搞
原题链接:http://acm.uestc.edu.cn/#/problem/show/92 题意: 给你一棵树,然后在树上连接一条边.现在有若干次询问,每次问你两个点(u,v)之间的距离在加那条边之 ...