原文:基于docker/虚拟机的esp32远程工作流

工作流框图

背景说明

  1. 为什么需要这套工作流--为了满足高效和灵活的开发方式

    • 因为我经常需要在公司和家里切换不同的电脑工作,所以编译环境需要在远程主机上,这样不同的工作机器都能访问相同的工作编译环境。
    • 因为esp32官方推荐的还是在linux下编译,所以最简单的就是我们的编译环境和工具链还是在linux下。但是我们日常的编码和硬件烧录还是在本地windows和mac的居多。所以就有了这一套本地环境和远程docker环境相互配合的工作流。我们可以在远程编译环境使用命令行高效编译,本地继续使用VSC等工具编码和烧录。
  2. 为什么用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远程工作流的更多相关文章

  1. 一台虚拟机,基于docker搭建大数据HDP集群

    前言 好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做.这个可以参考之前写得关于我大数据毕业设计的文章.这篇文章是将对之前的毕设进行优化. 个人觉得可以分为两个部分.第一个部分就是基础的平台 ...

  2. 基于docker的 Hyperledger Fabric 多机环境搭建(上)

    环境:ubuntu 16.04 Docker  17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...

  3. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

  4. vagrant特性——基于docker开发环境(docker和vagrant的结合)-1-基本使用

    Docker vagrant提供了使用Docker作为provider(其他的provider有virtualBox.VMware\hyper-V等)的开箱即用支持.这允许你的开发环境由Docker容 ...

  5. vagrant特性——基于docker开发环境(docker和vagrant的结合)-0-简介

    原文https://www.hashicorp.com/blog/feature-preview-docker-based-development-environments Feature Previ ...

  6. 基于 Docker 和 GitLab 的前端自动化部署实践笔记

    基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...

  7. Flynn初步:基于Docker的PaaS台

    Flynn它是一个开源PaaS台,无论要部署的应用程序,你可以建立自己的主动性Docker容器集群的实现,能特性与组件设计大量參考了传统的PaaS平台Heroku.本文旨在从使用动机.基本对象.层次架 ...

  8. 基于docker 如何部署surging分布式微服务引擎

    1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微 ...

  9. 基于Docker的Mysql主从复制搭建

    来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg   为什么基于Docker搭建? 资源有 ...

随机推荐

  1. bzoj 1069 凸包+旋转卡壳

    题目大意 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成 的多边形面积最大. 分析 枚举对角线的一个端点 另一个端点开始转 转的时候求出对角线左边面积 ...

  2. Filter里面实现未登录跳转,已登录权限判断

    package com.erichfund.cljjfof.server.util; import java.io.IOException; /** * @author 作者 zhuzhengquan ...

  3. JS和CS互访【后台前台代码调用JavaScript变量以及JavaScript调用代码变量】

    原文发布时间为:2008-10-13 -- 来源于本人的百度文章 [由搬家工具导入] .如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问Ja ...

  4. vue.js源码学习分享(九)

    /* */ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);//获取arrayMethods的属性名称 /** * By defaul ...

  5. 标准C程序设计七---105

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  6. 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 ...

  7. Python入门--16--模块

    模块的定义: 模块是一个包含所有你定义的函数和变量的文件,其后缀是.py.模块可以被别的程序引入,以使用该模块中的函数等功能 比如 import random secret=random.randin ...

  8. AxureRP8 实现时间功能

    利用AxureRP8中空间的动态面板的状态改变时间设置文本的值,从而实现时间功能,如下内容. 1.新建index页面,如已有index页面忽略这步即可. 2.拖入一个文本标签,将文本标签的名称命名为: ...

  9. Python递归函数和二分查找算法

    递归函数:在一个函数里在调用这个函数本身. 递归的最大深度:998 正如你们刚刚看到的,递归函数如果不受到外力的阻止会一直执行下去.但是我们之前已经说过关于函数调用的问题,每一次函数调用都会产生一个属 ...

  10. java中正则表达式要进行转义的字符。

    /** * 转义正则特殊字符 ($()*+.[]?\^{},|) * * @param keyword * @return */public static String escapeExprSpeci ...