我正在使用travis来制作人工制品(罐子和拉链)并将它们存储在bintray上。我想构建安装这些文物的docker图像,例如用于“应用程序”。 artefact版本0.1.0,哈希abc123:
FROM some-registry/oracle-jre7
RUN wget https://BINTRAY_USER:BINTRAY_API_KEY@dl.bintray.com/USER/REPO/app-0.1.0_abc123.jar -O /opt/app.jar
EXPOSE 9000
CMD ["java", "-jar", "/opt/app.jar"]
每次我想创建这个泊坞窗图像时,哈希(也许是版本)都会有所不同,我不想使用最新的#39;。我可以使用travis中的模板轻松生成Dockerfile,但我不确定如何构建docker镜像。我似乎无法在travis和quay.io和docker hub上构建它。我没有api可以发布Dockerfile或存档(尽管你可以通过qui.io上的ui来实现)
我不想让travis将Dockerfile提交到辅助git repo,因为如果它们有多个分支,那么同步这两个repos变得非常复杂。我也可以将这样的Dockerfile提交到主repo,然后在创建artefact之后触发quay.io或dockerhub来构建(如果他们可以以某种方式评估git哈希):
FROM some-registry/oracle-jre7
ENV APP_VERSION 0.1.0
ENV APP_GIT_HASH $(git rev-parse --short HEAD) # this definitely doesn't work
RUN wget https://BINTRAY_USER:BINTRAY_API_KEY@dl.bintray.com/USER/REPO/app-${APP_VERSION}_${GIT_HASH}.jar -O /opt/app.jar
EXPOSE 9000
CMD ["java", "-jar", "/opt/app.jar"]
我目前正在尝试将一个docker主机放在ec2中并获取travis来构建docker镜像并将其推送到bintary上的docker存储库,但我不必自己管理主机。