赞
踩
如果我正确理解你的问题:你在技术上甚至不需要在你的本地机器上安装Docker以便在你的Bitbucket管道中使用它(尽管它对调试非常有帮助) .
Bitbucket Pipelines可以配置为使用Docker Hub中的Docker,而你提到的那个(uber/android-build-environment)对我来说效果很好 .
只需将 bitbucket-pipelines.yml 添加到项目的根目录,例如:
image: uber/android-build-environment:latest
pipelines:
default:
- step:
script:
- build.sh
我喜欢在它自己的灰脚本文件( build.sh )中组织我的构建过程,但这是可选的(您可以在 script 指令下的yaml文件中放置多个项目符号) . 有关 bitbucket-pipelines.yml 文件的(和更多详细信息)的示例可以在Language guides for Bitbucket Pipelines页面上找到 .
我的 build.sh 脚本(也在项目的根目录中,但只要您在 bitbucket-pipelines.yml 中引用它就可以放在子目录中,例如 scripts/build.sh ):
#!/bin/sh
mkdir "${ANDROID_HOME}/licenses" || true
echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > "${ANDROID_HOME}/licenses/android-sdk-license"
./gradlew assembleDebug
许可证部分允许Android Gradle进程自动为您下载Android依赖项,如answer中所述 .
git update-index --chmod=+x build.sh
确保您已启用Bitbucket管道(来自您的仓库页面: Settings - > Pipelines: Settings - > Enable Pipelines ) .
然后只需提交 bitbucket-pipelines.yml 和 build.sh 并推送到您的BitBucket仓库 . 为您的项目构建的Bitbucket Pipelines应该在推送后不久开始 . Bitbucket Pipelines将从Docker Hub下载 uber/android-build-environment Docker并检查您的项目并在Docker中运行 build.sh 脚本 .
如果您的Bitbucket管道构建失败并且您希望在本地计算机上运行相同的环境,那么您在本地计算机上设置Docker的过程非常有用,这样您就可以对其进行试验并测试对 build.sh 脚本的更改在实际提交并推送到您的回购之前 .
如果你跑(本地)可能也会有用:
docker run -it uber/android-build-environment
这将启动Docker(在本地计算机上)并将您置于交互式shell中,以便您可以浏览并更好地了解Docker环境 .
还要注意Bitbucket Pipelines在Docker中克隆你的repo作为构建过程的一部分(据我所知),你没有在你的本地机器上运行的Docker上做过,这可能会导致你的一些混乱你的 build.sh 脚本没有出现 .
如果您希望本地计算机上的目录存在于Docker中(您在本地计算机上运行,可能是为了测试在您想要使用的Docker中的本地计算机上构建项目),可以使用以下命令进行安装当前运行的Docker中当前工作目录为 /project :
docker run -v `pwd`:/project -it uber/android-build-environment
正如@ ming-c在answer中指出的那样,Docker Hub上还有许多其他Docker镜像可用;当然值得浏览,看看你是否能找到最适合你需求的图像 .
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。