dockerfile构建cts运行环境

前言:目前因为需要在android10,11各版本测试cts,而两个android版本所需要的环境略有不一样,故尝试使用docker来隔离环境,后续更新只需要将cts和所需要的工具版本替换重新构建即可,提高测试环境布置效率

1.所需工具

主要需要工具

android-sdk
jdk11
cts工具包

这里要注意cts主要用到android-sdk内的“build-tools”和“ platform-tools ”内的工具,保留这两个即可,尽量保证镜像不会过大
我刚开始创建没有去除其它工具构建的镜像有10G以上

2.dockerfile文件构建

#新建dockerfile目录,并将需要的工具包复制到创建的目录内
mkdir dtest
#创建dockerfile
vim dockerfile
# dockerfile 内容
FROM ubuntu
COPY ./Sdk /Sdk
COPY ./android-cts/ /android-cts/
COPY ./jdk-11.0.9/jdk11/ /jdk11/
COPY ./runcts.sh /runcts.sh
# 配置环境变量
ENV PATH /Sdk/platform-tools/:/Sdk/build-tools/30.0.2/:/jdk11/bin/:$PATH
# 配置运行结果目录,用来将运行结果映射到宿主机,便于查看
# 需要在宿主机创建logs和results目录
VOLUME ["/android-cts/logs/","/android-cts/results/"]
ENTRYPOINT ["/runcts.sh"]

3. 默认启动脚本

就是进入到cts的运行文件目录下,执行这个文件

#!/bin/bash
cd /android-cts/tools
./cts-tradefed

4. 构建镜像

#需要到dokcerfile 所在目录执行
docker build --tag cts:1.0 .
# 构建过程
Sending build context to Docker daemon  4.724GB
Step 1/8 : FROM ubuntu
 ---> f643c72bc252
Step 2/8 : COPY ./Sdk /Sdk
 ---> Using cache
 ---> 64137f05ac89
Step 3/8 : COPY ./android-cts/ /android-cts/
 ---> Using cache
 ---> 232d67609126
Step 4/8 : COPY ./jdk-11.0.9/jdk11/ /jdk11/
 ---> Using cache
 ---> 38849642f89f
Step 5/8 : COPY ./runcts.sh /runcts.sh
 ---> Using cache
 ---> d223a8f67ecb
Step 6/8 : ENV PATH /Sdk/platform-tools/:/Sdk/build-tools/30.0.2/:/jdk11/bin/:$PATH
 ---> Using cache
 ---> 23c31545a689
Step 7/8 : VOLUME ["/android-cts/logs/","/android-cts/results/"]
 ---> Using cache
 ---> 7a648886e29a
Step 8/8 : ENTRYPOINT ["/runcts.sh"]
 ---> Using cache
 ---> c977d872cf7a
Successfully built c977d872cf7a
Successfully tagged cts:1.0

5.启动容器

# --privileged 这个参数一定要加,否则adb无法识别到设备
# -v 是将测试产生的log和result映射到宿主机
# 运行时不要加 -d ,直接进入cts的运行界面
docker run -it --name cts --privileged -p 5037:5037 -v /home/mchen/tmp/logs/:/android-cts/logs/ -v /home/mchen/tmp/results/:/android-cts/results/ cts:1

6.重新进入

docker start cts
docker exec -it cts /bin/bash/
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值