本帖最后由 rocks 于 2025-8-28 17:30 编辑
看到有人问最近的网络问题,造成更新或者编译出现问题,实际都是网络原因引起的问题。刚好我前几天刚装了docker版的dev9.0,把大概流程梳理下吧。
零、安装docker
我是在Ubuntu22.04虚拟机内安装的,linux环境应该类似。在上面首先安装好docker和docker-compose,这一步不需要特别设置代理,ubuntu换源即可,主要是使用sudo apt 安装相关的docker。不熟悉docker安装的可百度docker,我按照docker官方安装流程提供的命令完成了安装,没有遇到网络问题。当然也可以问AI,安装完docker需要创建组,然后把root或者自己登入的账户添加进组,不然没有权限,这一步问deepseek可以给你很详细的指导。
关于esphome我使用的是官方推荐的docker-compose方式。
首先我们确定要安装的esphome版本,下面地址为esphome在github上面发布的版本地址,可访问查看有哪些版本的docker(github有时候需要科学上网)
ghcr.io/esphome/esphome
官方的教程ESPHome 命令行入门 - ESPHome - 智能家居变得简单,我们不使用命令行拉取容器,采用compose方式。
我Ubuntu22.04安装创建的账号名为ubuntu,ubuntu内用户文件夹即为ubuntu,我在用户目录下面创建了esphome文件夹,使用pwd命令回显为:/home/ubuntu/esphome,不同账户该路径有差异,/home/username/esphome下面记得修改一致。
我们在ubuntu一个目录下创建docker-compose.yml文件,里面添加如下内容:
<div>version: '3'
services:
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome:2025.9.0-dev20250826 #上面github打开可以看到很多分支,可以任选。不想指定版本ghcr.io/esphome/esphome即为最新发行版
volumes:
- /home/ubuntu/esphome:/config #本地的目录/home/ubuntu/esphome映射容器内的/config
- /etc/localtime:/etc/localtime:ro
restart: always
privileged: true
network_mode: host #与主机共享网络
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0" # 将主机的串口设备(如USB转串口模块)映射到容器内,用于刷写固件
environment:
- TZ=Asia/Shanghai # 设置容器时区,例如Asia/Shanghai
#- HTTPS_PROXY=http://192.168.1.4:2334 #设置科学上网的代理
#- HTTP_PROXY=http://192.168.1.4:2334 #设置科学上网的代理</div>
一、首先解决网络问题
我分享一个网站Devpn 得自由 欢迎您 | Devpn 得自由 然后点左上角免费试用,每次点都可获得一个小时临时账号,不建议购买。足够我们安装好esphome和esp32及esp8266的环境包、编译教程工具链等需要从github下载的东西了。
进入里面选择Hiddify for Ubuntu 使用教程 | Devpn 得自由,然后在ubuntu上面安装,并且添加订阅获得的链接。这样我们Ubuntu就可以高速访问github下载东西了。在配置页面打开允许局域网连接选项,为后续局域网内的docke提供代理。
二、ESPHome docker容器安装
我们在docker-compose.yml同目录下打开shell,然后执行下面命令
docker-compose up -d
即可开始拉取安装ESPhome,等待gihub下载完,即运行,我们打开浏览器即可使用esphome创建设备页面。因为ubuntu运行了hiddify,访问github很快,拉取安装大概几分钟就可完成。
因为安装好后一打开ubuntu,docker就运行,但是我们想更改配置重新生效,我们需要停止容器,更改配置后重新再启动,可以使用下面命令停止容器。
上面yaml注释掉的即为代理设置
#- HTTPS_PROXY=http://192.168.1.4:2334 #设置科学上网的代理
#- HTTP_PROXY=http://192.168.1.4:2334 #设置科学上网的代理
在不需要时候可以注释,需要时候取消前面的#。
打开后,我们需要软件设置局域网为docker代理。
192.168.1.4为我Ubuntu虚拟机的局域网IP,我虚拟机网络设置的桥接模式:直连的路由器,跟一台物理机一样。2334为下面hiddify的混合端口号,clash猫是另外的端口号,同理,然后在配置页面打开允许局域网连接选项,即可为局域网内的其它设备提供代理。
完成后我们重新启动esphome容器,里面对github等网站下载网速就会恢复正常。
这样在esphome页面,我们创建的esp32或者esp8266,下载工具链,包,都会非常快。出现的编译问题也可解决。
|