您的位置:首页 > 运维架构 > Docker

将消息中心改造成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后面的名字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  springboot docker maven
相关文章推荐