用Docker搞定ESP-IDF编译环境
装了个ESP-IDF因为平时用VScode比较多所以是通过它的插件安装的结果装的我电脑到处都是Epressif文件夹不知道直接装ESP-IDF会不会也到处都是它的目录。后来改用Docker电脑干净多了因为docker本来就是用来隔离环境的。本篇博客就来记录一下如何用Docker 搞定 ESP-IDF编译环境。一. 下载dockerdocker在Linux或者windows下都可以安装。Windows去官网上安装docker desktophttps://www.docker.com/products/docker-desktop/Intel和AMD的电脑都选AMD64的那个。Windows安装的话需要搞定wsl环境这个你顺着安装自然就装上了它安装半中间会跳出来一个Powershell的界面如果没有wsl它会让你按回车装回车之后它就会自动安装了。Linux就用命令行安装# Ubuntusudoaptinstalldocker.iosudosystemctl startdocker二、拉取ESP-IDF官方镜像因为我是在Windows系统下安装的下面的步骤也都是Windows的docker desktop上操作的。首先docker desktop界面长这样如果你不需要从类似git一样的拥有自己的docker远程仓库那就不用注册和登录它让你sign in不理它跳过就行了。因为国内的网络可能存在限制下载镜像可能下不下来需要修改一个配置。这里我和AI大战800回合不管换啥都是403。最后上网搜到一个可以的有的时候还是人类靠谱啊。。。通过右上角小齿轮点进设置 - Docker Engine - 改成下面这一段 - Apply应用{builder:{gc:{defaultKeepStorage:20GB,enabled:true}},experimental:false,registry-mirrors:[https://docker.1panel.live,https://hub.rat.dev]}开始里输powershell输入以下命令拉取官方的ESP-IDF镜像。冒号后面是它的镜像标签一般就是版本号如果有指定版本就放这里如果没有想下载最新版就写latest。dockerpull espressif/idf:latest# downloade old versiondockerpull espressif/idf:v5.3.1经过上面对docker engine的设置这里应该不会被卡住了。下载之后可以用docker images命令查看当前你有的docker。dockerimages三、使用镜像编译运行docker的命令是docker rundockerrun--rm-vE:\workspace\esp32:/project-w/project espressif/idf:latest idf.py build下面我列出每个参数的意思大家可以按照自己的使用需求修改命令dockerrun\--rm\# 容器运行完自动删除不留垃圾-vE:\workspace\esp32:/project\# 把代码目录挂载到容器内的 /project下因为我是windows环境路径用\docker里面是linux环境路径用/-w/project\# 工作目录设为 /projectespressif/idf:latest\# 使用的镜像名idf.py build# 要执行的命令后面就坐等编译完成了。如果不想每次都输这么长的命令也可以做一个命令别名functionidf{dockerrun--rm-v${PWD}:/project-w/project espressif/idf:latest idf.py$args}之后再使用的时候就可以# 进入项目目录cdmy_esp_project# 设置目标芯片idf set-target esp32c3# 编译idf build四、使用镜像烧录烧录其实我还没试我就只做了编译这部分如果大家有需要还可以继续烧录# example: com 3dockerrun--rm-vE:\project\esp32:/project-w/project--device/dev/ttyS3 espressif/idf:latest idf.py flash五、如何删除Docker镜像当你需要删除docker的时候执行以下操作# 查看所有镜像dockerimages# 删除指定镜像dockerrmi espressif/idf:latest# 或者一键清理所有未使用的镜像、容器、网络dockersystem prune-a删除后项目代码还在本地的这个只是把ESP-IDF删了代码完全不受影响。