我有一个托管在GitHub上的Java项目。我还有一个Docker文件,可在构建后(使用Maven)基于生成的war文件创建镜像。
我想要的是每次我将新代码推送到存储库时都生成一个新的Docker镜像。我感到困惑的是,Docker将如何构建源并将生成的.war文件添加到基本Tomcat Docker文件中?还是我在想这个错误?
或者,Travis CI是否可以生成 war ,然后将其推送到docker镜像?
最佳答案
因此,要解决此问题,我让Travis CI从存储库中提取了数据,并在构建后将docker文件从目标目录中提取了 Artifact ,并将构建的docker镜像推送到了docker hub。
.travis.yml
language: java
sudo: true
services:
- docker
cache:
directories:
- $HOME/.m2
jdk:
- oraclejdk8
os:
- linux
branches:
only:
- master
after_success:
- docker login -e="$DOCKER_EMAIL" -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
- docker build -t blah/blah .
- docker push blah/blah
Dockerfile:
# Pull base image
From tomcat:8-jre8
# Maintainer
MAINTAINER "Joel"
# Copy to images tomcat path
COPY target/blah*.war /usr/local/tomcat/webapps/sacred-text-api.war