如何使用 Docker 进行编译和开发

本文来自于【阿里云官方镜像站:https://developer.aliyun.com/mirror/?utm_content=g_1000307095 】

原文链接:https://developer.aliyun.com/article/759478?spm=a2c6h.12873581.0.0.484f7e46SbqQDx

镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站

一、Linux环境开发

适用于Linux环境开发者,有专门代码服务器或虚拟机

1. 安装docker

$ sudo apt-get install docker-ce

2. 获取docker镜像

$ docker pull registry.cn-hangzhou.aliyuncs.com/alios_things/rtos:latest

3. 启动docker

为其命名alios-docker:

$ docker run -it --privileged --name alios-docker registry.cn-hangzhou.aliyuncs.com/alios_things/rtos /bin/bash

注意:

退出docker后,可用以下命令重新启动已有docker:

$ docker container start -ia alios-docker

镜像更新前,需要备份有用的代码,重新获取新镜像并启动

二、Mac环境开发

适用于无专门代码服务器或虚拟机,习惯mac本机开发

适用场景一:有linux经验,代码编辑与编译均可在docker环境下进行

1. 下载mac环境下的docker工具包并安装

打开https://docs.docker.com/toolbox/overview/#whats-in-the-box

安装后打开Toolbox的DOCKER CLI, 实际上进入mac 的Terminal, 再继续下面的操作

2. 获取docker镜像

$ docker pull registry.cn-hangzhou.aliyuncs.com/alios_things/rtos:latest

3. 启动docker

为其命名alios-docker:

$ docker run -it --privileged --name alios-docker registry.cn-hangzhou.aliyuncs.com/alios_things/rtos bin/bash

4. 获取代码

组件化工具获取:按需选择适当组件获取需要的代码 本地zip文件,或 wget http链接(根据所选组件生成源码下载的链接) 获取

github获取:将获取全量代码

git clone https://github.com/alibaba/AliOS-Things.git -b <release_branch_name>

注意:

退出docker后,可用以下命令重新启动已有docker:

$ docker container start -ia alios-docker

需要烧机时,配置docker USB设备,参考Windows下的USB设备配置,启动docker命令中无需-v参数

适用场景二:代码编辑和调试在mac,编译和烧录在docker下进行

与mac场景一比较,需要建立共享目录,完成代码在两种环境中的共享。

1. 下载docker工具

同上

2. 获取docker镜像

同上

3. 获取代码

推荐组件化工具获取,将zip包解压到本机某个目录下, 如 /Users/xxx/alios

4. 启动docker

为其命名alios-docker,并指定本机与docker的目录映射关系: 使用-v 参数 -v <本机代码所在目录名>:

$ docker run -it --privileged --name alios-docker -v /Users/xxx/alios:/workspace registry.cn-hangzhou.aliyuncs.com/alios_things/rtos bin/bash

至此,可以达到对/Users/xxx/alios中的代码进行本地编辑和调试,而编译时, 转入docker中的/workspace下,执行

# aos2.1.0以及后续版本

aos make <app>@<board> -c config && aos make

# aos2.1.0之前版本

aos make <app>@<board>

注意: 需要烧机时,配置docker USB设备,参考Windows下的USB设备配置, 启动docker命令中-v 参数稍有差别

三、Windows环境开发

适用于无专门代码服务器或虚拟机, 习惯Windows本机开发

适用场景一:有linux经验,可工作于linux虚拟机

1. 下载Windows环境下的docker工具包并安装

打开https://docs.docker.com/toolbox/overview/#whats-in-the-box下载windows下的docker工具

Toolbox将默认安装VirtualBox,之后打开Docker Quickstart Terminal进行下面的操作

2. 获取docker 镜像

$ docker pull registry.cn-hangzhou.aliyuncs.com/alios_things/rtos:latest

3. 启动docker

$ docker run -it --privileged --name alios-docker registry.cn-hangzhou.aliyuncs.com/alios_things/rtos bash

4. 获取代码

组件化工具获取:按需选择适当组件获取需要的代码 本地zip文件,或 wget http链接(根据所选组件生成源码下载的链接) 获取

github获取:将获取对应发布分支的代码 git clone https://github.com/alibaba/AliOS-Things.git -b

注意: 

退出docker后,可用以下命令重新启动已有docker:

$ docker container start -ia alios-docker

需要烧录设备时, 参考Windows场景二中的USB设备配置,docker启动时,无需-v参数

适用场景二:代码编辑和调试在windows,编译和烧录在docker下进行

与场景一比较,需要建立共享目录,完成代码在两种环境中的共享。

1. 下载docker工具

同上

2. 获取docker镜像

同上

3. 获取代码

推荐组件化工具获取,将zip包解压到本机某个目录下, 如d:work

4. 启动docker, 带目录共享能力

方式一:创建共享目录的docker

执行如下脚本,按要求copy命令并执行后即可 set_share_folder.zip

例如:需要做 d:work与 docker中的/workspace的目录共享,执行脚本后,命令如下:

1)脚本执行后,自动停在虚拟机终端:

$ sudo mkdir –parents /d/work

$ sudo mount –tvboxsf d/work /d/work/

$ exit

2)退出后回到windows命令行,启动AliOS docker:

$ docker run -it --privileged --name alios-docker -v /d/work:/workspace/ registry.cn-hangzhou.aliyuncs.com/alios_things/rtos bash

这样就启动了一个AliOS Things的docker, 之后可以在docker环境里进行编译开发.

注意:Windows下取消共享目录命令:

C:/Program Files/Oracle/VirtualBox/VBoxManage.exe sharedfolder remove default --name d/work

方式二:利用samba服务的docker

1)创建存储volume, 便于与docker下的目录共享:

$ docker volume create --name aos-vol

2)启动docker:为其命名alios-docker,并-v指定volume目录映射到docker中的/workspace

$ docker run -it --privileged -p445:445 --name alios-docker -v aos-vol:/workspace/ registry.cn-hangzhou.aliyuncs.com/alios_things/rtos bash

3)安装samba并配置, 此时已进入docker环境:

$ apt install samba

$ vim /etc/samba/smb.conf #在文件最后添加以下内容

[alios]

path = /workspace

public = yes

case sensitive = yes

map archive = no

only guest = yes

writable = yes

force user = aosuser

force group = aosuser

$ groupadd -g 1000 aosuser #添加分组,与上面指定的分组名保持一致

$ useradd -m -u 1000 -g 1000 aosuser #添加用户,与上面指定的用户名保持一致

4)启动samba daemon:

$ /usr/sbin/smbd

5)获取docker的虚拟IP: 回到Docker Quickstart Terminal里查看ip

$ docker-machine ip

192.168.99.100

6)配置网络连接:在windows下按win+R键,调出运行窗口,输入ip

此时,在windows下可访问docker里的内容, 亦可随意添加内容到docker目录里:

四、配置docker_usb设备

注:如果无烧录需求, 可忽略此步骤

1)打开Docker Quickstart Terminal (Mac时,可直接使用mac terminal),停止缺省虚拟机:

$ docker-machine stop default

2)打开VirtualBox的管理界面,设置->usb设备->点选“启用usb控制器”->添加usb设备->确认

3)重新运行缺省虚拟机:

$ docker-machine start default

或者打开一个新的Docker Quickstart Terminal

$ docker-machine ssh default

4)检测usb设备:连线后使用下面命令进行检测

$ dmesg | grep1 usb

........

[ 19.942282] usb 1-2: cp210x converter now attached to ttyUSB0

5)欲使用usb设备的功能,启动docker时需添加新的启动参数--privileged,而-v参数根据目录共享需要添加:

$ docker run -it --privileged --name alios-things -v /d/work:/workspace/ registry.cn-hangzhou.aliyuncs.com/alios_things/rtos bash

6)编译代码,使用aos命令烧写: 比如烧写适配developerkit板子的helloworld应用的image:

$ aos upload helloworld@developerkit

.......

[INFO]: Firmware upload succeed!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装docker编译环境,首先需要搭建docker开发编译环境。根据docker官网提供的方法,你可以使用docker官方提供的dockerfile来生成docker编译环境镜像。该dockerfile的镜像名称为dockercore/docker。接下来,你需要安装docker,并在docker容器编译环境中编译docker源码。在Ubuntu 14.04系统中,你可以通过命令行安装docker[2]。然后,你可以使用以下命令在docker容器中运行编译环境: docker run -i -t --privileged --rm --name docker-dev -v $(pwd):/go/src/github.com/docker/docker dockercore/docker bash 以上是安装docker编译环境的步骤,通过这样的环境你就可以进行docker编译工作了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [docker 开发编译环境搭建](https://blog.csdn.net/warrior_0319/article/details/79621753)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [详解Docker源码编译安装](https://download.csdn.net/download/weixin_38724611/14891969)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值