我有一个托管在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

10-07 13:21
查看更多