Skip to content

Latest commit

 

History

History
107 lines (75 loc) · 2.51 KB

README.md

File metadata and controls

107 lines (75 loc) · 2.51 KB

docker_builder

Dockerfiles for ubuntu 22.04 LTS on Server 17

可以根据自己的需求创建不同版本ubuntu的容器,用完即走。

查看是否已经有对应的image,如果没有的话,就进行下一步创建你需要的image

docker images

如果提示权限问题,请找管理员将你添加到docker组

sudo gpasswd -a 你的用户名 docker
newgrp docker

然后你重新登录即可。

创建Ubuntu 20.04容器(编译Yocto)

创建image

docker build -f Dockerfile_yocto -t yocto_builder .

run container and remove it after use

change source to your projects' folder 注意--mount要改成自己的目录

docker run -it --rm --name yocto_builder \
--user $(id -u ${USER}):$(id -g ${USER}) \
-v /etc/passwd:/etc/passwd:ro \
-v /etc/group:/etc/group:ro \
-v /etc/shadow:/etc/shadow:ro \
--mount type=bind,source=/home/workspace/earth/lipc/projects,target=/home/workspace/earth/lipc/projects \
yocto_builder

创建Ubuntu 14.04容器(编译Android6)

创建image

指定Dockerfile创建image,

docker build -f Dockerfile_ubuntu_14.04 -t aosp_builder_an6 .

创建Ubuntu 16.04容器(编译Android7)

创建image

指定Dockerfile创建image,

docker build -f Dockerfile_ubuntu_16.04 -t aosp_builder_an7 .

启动容器

run_aosp_builder_docker.sh开头第一句话设置了退出后自动销毁容器,用完即走。

  1. 按需要修改run_aosp_builder_docker.sh,

    • -v 使用host的文件
    • --env-file指定一些工具链的环境变量,这些工具链都安装在了17服务器上,你需要修改env_an6_7.list里面的内容达到你需要的效果
    • --env 传递环境变量
    • --mount 挂载主机目录,其中/opt目录是17服务器的编译工具链所在目录
    • aosp_builder_$1 最后一行接收一个参数,可选an6或者an7
    docker run -it --rm --name aosp_builder_${USER} \
    --user $(id -u ${USER}):$(id -g ${USER}) \
    --env-file env_an6_7.list \
    --env HOME=${PWD}/container_home \
    -v /etc/passwd:/etc/passwd:ro \
    -v /etc/group:/etc/group:ro \
    -v /etc/shadow:/etc/shadow:ro \
    -v /etc/sudoers:/etc/sudoers:ro \
    --mount type=bind,source=${HOME},target=${HOME} \
    --mount type=bind,source=/opt,target=/opt \
    aosp_builder_$1
    
  2. 启动容器,退出会自动销毁容器

#编译Android 6
./run_aosp_builder_docker.sh an6
#编译Android 7
./run_aosp_builder_docker.sh an7

清理缓存

删除 build cache

docker builder prune