本文举例将一个MAVEN springboot 项目打包到docker.
1. tree -a 看下当前springboot 的build output 结构
2. 上图中, 需要conf文件夹 和打包的.war文件就可以了,所以 Dockerfile:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
#ARG JAR_FILE
#ADD ${JAR_FILE} app.jar
#http://spring.io/guides/gs/spring-boot-docker/
COPY target/yq-server-mgr.war /springboot/app.war
#[conf] is folder, so just copy its content, not include folder itself
COPY target/conf/ /springboot/conf/
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/springboot/app.war"]
3. 这里本地build, 也是可以的
$ docker build -t spring-boot-docker-yqapp:1.0.0 .
4. Build完成后, 查看images
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
spring-boot-docker-yqapp 1.0.0
5. 这个image可以正常的本地运行, 那么久可以upload到docker hub. 当然, 先docker login
$ docker tag spring-boot-docker-yqapp:1.0.0 allan114/springboot:yqapp
$ docker push allan114/springboot:yqapp
6. 可以看到我们upload的image: https://hub.docker.com/r/allan114/springboot/tags/
下面部分介绍如何让docker hub 帮忙在线build.
1. 首先, 我们需要在https://github.com/ 建立个账户,创建project, 并将代码上传, 记住Dockerfile位置
2. Create - Create Automated Build , 需要link到github account
3. 填入相关的build文件位置, 需要手工trigger build

4. end
网友评论