Dockerfiles for ubuntu 22.04 LTS on Server 17
可以根据自己的需求创建不同版本ubuntu的容器,用完即走。
docker images
如果提示权限问题,请找管理员将你添加到docker组
sudo gpasswd -a 你的用户名 docker
newgrp docker
然后你重新登录即可。
docker build -f Dockerfile_yocto -t yocto_builder .
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
指定Dockerfile创建image,
docker build -f Dockerfile_ubuntu_14.04 -t aosp_builder_an6 .
指定Dockerfile创建image,
docker build -f Dockerfile_ubuntu_16.04 -t aosp_builder_an7 .
run_aosp_builder_docker.sh
开头第一句话设置了退出后自动销毁容器,用完即走。
-
按需要修改
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
-
启动容器,退出会自动销毁容器
#编译Android 6
./run_aosp_builder_docker.sh an6
#编译Android 7
./run_aosp_builder_docker.sh an7
删除 build cache
docker builder prune