将消息中心改造成springboot项目,并集成maven打包docker image
2018-03-30 00:00
956 查看
一手动打包测试:
[root@zhaixl1 docker]# ll
总用量 260160
-rw-r--r-- 1 root root 305 12月 22 21:12 Dockerfile
-rw-r--r-- 1 root root 183246769 12月 22 19:53 jdk-8u121-linux-x64.tar.gz
-rw-r--r-- 1 root root 83150458 12月 22 11:48 new_msg_center-0.0.1-SNAPSHOT.jar
# Dockerfile
FROM centos
MAINTAINER zhaixl
ADD jdk-8u121-linux-x64.tar.gz ./
RUN mv jdk1.8.0_121 jdk8
ADD new_msg_center-0.0.1-SNAPSHOT.jar app.jar
ENV JAVA_HOME=/jdk8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar","/app.jar"]
[root@zhaixl1 docker]#docker build -t zhaixl/new_messagecenter ./
[root@zhaixl1 docker]#docker run -it -p 8081:8081 -d --name messagecenter3 zhaixl/new_messagecenter
二 maven 自动build Docker Image
1. build Docker Image zhaixl/centos_jdk8
FROM centos
MAINTAINER zhaixl
ADD jdk-8u121-linux-x64.tar.gz ./
RUN mv jdk1.8.0_121 jdk8
ENV JAVA_HOME=/jdk8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@zhaixl1 docker]#docker build -t zhaixl/centos_jdk8 ./
2. maven build Docker Image zhaixl/centos_jdk8
在项目目录创建Dockerfile文件: src/main/docker/Dockerfile(没有后缀),内容如下:
#build Docker file
MAINTAINER zhaixl
FROM zhaixl/centos_jdk8
VOLUME /tmp
ADD new_msg_center-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
#其中 new_msg_center-0.0.1-SNAPSHOT.jar 是项目打包后 /target/ 里面的文件名
3.在pom文件中添加docker支持
<properties>
<docker.image.prefix>ramer</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.11</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
4.打包,创建镜像:
mvn package -Dmaven.test.skip=true docker:build
注意: 请确保maven已添加到path中;并且已安装docker,如果没有安装,请访问: https://www.docker.com/community-edition#/download 下载合适的版本.
5.打包日志
Downloaded: http://maven.aliyun.com/nexus/content/groups/public/org/eclipse/jgit/org.eclipse.jgit/3.2.0.201312181205-r/org.eclipse.jgit-3.2.0.201312181205-r.jar (1.9 MB at 327 kB/s)
[INFO] Copying /src/new_message_center/target/new_msg_center-0.0.1-SNAPSHOT.jar -> /src/new_message_center/target/docker/new_msg_center-0.0.1-SNAPSHOT.jar
[INFO] Copying src/main/docker/Dockerfile -> /src/new_message_center/target/docker/Dockerfile
[INFO] Building image zhaixl/new_msg_center
Step 1/7 : FROM zhaixl/centos_jdk8
---> 8e09f23ce4ec
Step 2/7 : MAINTAINER zhaixl
---> Running in d81d4dc0b618
---> dac5fed94068
Removing intermediate container d81d4dc0b618
Step 3/7 : VOLUME /tmp
---> Running in ac50880fc440
---> 18d1e2680991
Removing intermediate container ac50880fc440
Step 4/7 : ADD new_msg_center-0.0.1-SNAPSHOT.jar app.jar
---> 7fd1ce2b56c8
Removing intermediate container fc7cb19f2610
Step 5/7 : RUN sh -c 'touch /app.jar'
---> Running in 0f3d9e1d1f8a
---> b177875a9537
Removing intermediate container 0f3d9e1d1f8a
Step 6/7 : ENV JAVA_OPTS ""
---> Running in 80e8e155d03b
---> 27b2bd554187
Removing intermediate container 80e8e155d03b
Step 7/7 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
---> Running in 8f9f73c5c311
---> 3f64d4a5bc4a
Removing intermediate container 8f9f73c5c311
Successfully built 3f64d4a5bc4a
Successfully tagged zhaixl/new_msg_center:latest
[INFO] Built zhaixl/new_msg_center
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:58 min
[INFO] Finished at: 2017-12-22T23:04:00+08:00
[INFO] Final Memory: 51M/121M
[INFO] ------------------------------------------------------------------------
6. 运行docker容器
##最好添加--name参数
docker run --name=springboot-docker-demo -p 8081:8081 -it zhaixl/new_msg_center
在浏览器访问: http://192.168.72.11:8081/messagecenter/api/1.0.0/message/getMessage
docker run --name=springboot-docker-demo -p 8081:8081 -it -d zhaixl/new_msg_center
7. 查看正在运行的容器
cmd: docker ps
8. 启动/关闭/重启/删除docker容器
cmd: docker start/stop/restart/rm CONTAINER_ID/NAME
其中:
CONTAINER_ID: 是容器id,执行 docker ps 可查看
NAME: 是容器的名称,也就是docker run –name后面的名字
[root@zhaixl1 docker]# ll
总用量 260160
-rw-r--r-- 1 root root 305 12月 22 21:12 Dockerfile
-rw-r--r-- 1 root root 183246769 12月 22 19:53 jdk-8u121-linux-x64.tar.gz
-rw-r--r-- 1 root root 83150458 12月 22 11:48 new_msg_center-0.0.1-SNAPSHOT.jar
# Dockerfile
FROM centos
MAINTAINER zhaixl
ADD jdk-8u121-linux-x64.tar.gz ./
RUN mv jdk1.8.0_121 jdk8
ADD new_msg_center-0.0.1-SNAPSHOT.jar app.jar
ENV JAVA_HOME=/jdk8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar","/app.jar"]
[root@zhaixl1 docker]#docker build -t zhaixl/new_messagecenter ./
[root@zhaixl1 docker]#docker run -it -p 8081:8081 -d --name messagecenter3 zhaixl/new_messagecenter
二 maven 自动build Docker Image
1. build Docker Image zhaixl/centos_jdk8
FROM centos
MAINTAINER zhaixl
ADD jdk-8u121-linux-x64.tar.gz ./
RUN mv jdk1.8.0_121 jdk8
ENV JAVA_HOME=/jdk8
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@zhaixl1 docker]#docker build -t zhaixl/centos_jdk8 ./
2. maven build Docker Image zhaixl/centos_jdk8
在项目目录创建Dockerfile文件: src/main/docker/Dockerfile(没有后缀),内容如下:
#build Docker file
MAINTAINER zhaixl
FROM zhaixl/centos_jdk8
VOLUME /tmp
ADD new_msg_center-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
#其中 new_msg_center-0.0.1-SNAPSHOT.jar 是项目打包后 /target/ 里面的文件名
3.在pom文件中添加docker支持
<properties>
<docker.image.prefix>ramer</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.11</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
4.打包,创建镜像:
mvn package -Dmaven.test.skip=true docker:build
注意: 请确保maven已添加到path中;并且已安装docker,如果没有安装,请访问: https://www.docker.com/community-edition#/download 下载合适的版本.
5.打包日志
Downloaded: http://maven.aliyun.com/nexus/content/groups/public/org/eclipse/jgit/org.eclipse.jgit/3.2.0.201312181205-r/org.eclipse.jgit-3.2.0.201312181205-r.jar (1.9 MB at 327 kB/s)
[INFO] Copying /src/new_message_center/target/new_msg_center-0.0.1-SNAPSHOT.jar -> /src/new_message_center/target/docker/new_msg_center-0.0.1-SNAPSHOT.jar
[INFO] Copying src/main/docker/Dockerfile -> /src/new_message_center/target/docker/Dockerfile
[INFO] Building image zhaixl/new_msg_center
Step 1/7 : FROM zhaixl/centos_jdk8
---> 8e09f23ce4ec
Step 2/7 : MAINTAINER zhaixl
---> Running in d81d4dc0b618
---> dac5fed94068
Removing intermediate container d81d4dc0b618
Step 3/7 : VOLUME /tmp
---> Running in ac50880fc440
---> 18d1e2680991
Removing intermediate container ac50880fc440
Step 4/7 : ADD new_msg_center-0.0.1-SNAPSHOT.jar app.jar
---> 7fd1ce2b56c8
Removing intermediate container fc7cb19f2610
Step 5/7 : RUN sh -c 'touch /app.jar'
---> Running in 0f3d9e1d1f8a
---> b177875a9537
Removing intermediate container 0f3d9e1d1f8a
Step 6/7 : ENV JAVA_OPTS ""
---> Running in 80e8e155d03b
---> 27b2bd554187
Removing intermediate container 80e8e155d03b
Step 7/7 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
---> Running in 8f9f73c5c311
---> 3f64d4a5bc4a
Removing intermediate container 8f9f73c5c311
Successfully built 3f64d4a5bc4a
Successfully tagged zhaixl/new_msg_center:latest
[INFO] Built zhaixl/new_msg_center
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:58 min
[INFO] Finished at: 2017-12-22T23:04:00+08:00
[INFO] Final Memory: 51M/121M
[INFO] ------------------------------------------------------------------------
6. 运行docker容器
##最好添加--name参数
docker run --name=springboot-docker-demo -p 8081:8081 -it zhaixl/new_msg_center
在浏览器访问: http://192.168.72.11:8081/messagecenter/api/1.0.0/message/getMessage
docker run --name=springboot-docker-demo -p 8081:8081 -it -d zhaixl/new_msg_center
7. 查看正在运行的容器
cmd: docker ps
8. 启动/关闭/重启/删除docker容器
cmd: docker start/stop/restart/rm CONTAINER_ID/NAME
其中:
CONTAINER_ID: 是容器id,执行 docker ps 可查看
NAME: 是容器的名称,也就是docker run –name后面的名字
相关文章推荐
- springboot项目maven打包成dockerImage推送到私有仓库dockerhub上
- Spring Boot项目与Docker集成完成打包,打镜像及推送至镜像库的功能
- 集成jcaptcha到spring-boot+maven项目中时出现java.lang.NoSuchMethodError: com.jhlabs.image.WaterFilter的问题的解决方法
- 聚合 Spring boot + maven项目打包和linux部署
- Git+Spring-boot+Docker+ Maven +Registry私有仓库 +jenkins 持续集成测试
- Spring集成React用来开发前端----maven项目中用webpack打包react相关组件
- Maven配置Spring Boot项目打包,依赖包到lib目录、配置文件到conf目录
- Spring boot框架项目,使用maven命令将配置文件打包到jar包外,项目运行读取jar外配置文件
- Idea 打包maven项目 以及spring boot 的自动配置
- 2 springboot项目集成使用disconf,基于docker环境
- spring boot项目集成spring cloud/docker
- maven构建的spring boot项目打包成可执行的jar(fat jar)
- 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
- IDEA的springboot项目maven打包的时候过滤掉单元测试
- 1 springboot项目集成使用disconf,基于docker环境
- 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
- Springboot或Java web项目使用maven打包时引入外部源
- 使用maven集成docker构建和部署Spring Boot 应用
- 携程Apollo(阿波罗)配置中心在Spring Boot项目快速集成
- 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上