zoukankan      html  css  js  c++  java
  • Docker部署单个的springboot应用 (eureka-server)

    一 在pom文件中添加docker编译的插件

    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <!-- tag::plugin[] -->
                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>0.4.3</version>
                    <configuration>
                        <imageName>tms/${project.artifactId}</imageName> //其中tms是镜像名的前缀 为了区别而已 例如我的这个application的名为eureka-server 则他的镜像名为tms/eureka-server 
                        <dockerDirectory>src/main/docker</dockerDirectory>
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <directory>${project.build.directory}</directory>
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                    </configuration>
                </plugin>
                <!-- end::plugin[] -->
            </plugins>
        </build>

    二 编写Dockfile 

     

     我的文件目录是这样的,其中Dockefile是没有文件后缀的  文件内容如下:

    FROM java:8 
    VOLUME /tmp
    ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    EXPOSE 8060

       FROM 后是指定java的版本

      VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录

      项目的 jar 文件作为 “app.jar” 添加到容器的

      ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source

     其中有关于jar包的路径 这个路径是从target的根目录去找 

     三  将eureka-server打包

      

    [root@Master eureka-server]# mvn clean package docker:build -Dmaven.test.skip=true
    [root@Master eureka-server]# mvn clean package docker:build -Dmaven.test.skip=true
    [INFO] Scanning for projects...
    [INFO] 
    [INFO] -----------------------< com.hmzj:eureka-server >-----------------------
    [INFO] Building eureka-server 0.0.1-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO] 
    [INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ eureka-server ---
    [INFO] 
    [INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ eureka-server ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 3 resources
    [INFO] Copying 0 resource
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ eureka-server ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 2 source files to /home/web/workspace/tms-callcenter/eureka-server/target/classes
    [INFO] 
    [INFO] --- maven-resources-plugin:3.0.1:testResources (default-testResources) @ eureka-server ---
    [INFO] Not copying test resources
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.7.0:testCompile (default-testCompile) @ eureka-server ---
    [INFO] Not compiling test sources
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.21.0:test (default-test) @ eureka-server ---
    [INFO] Tests are skipped.
    [INFO] 
    [INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ eureka-server ---
    [INFO] Building jar: /home/web/workspace/tms-callcenter/eureka-server/target/eureka-server-0.0.1-SNAPSHOT.jar
    [INFO] 
    [INFO] --- spring-boot-maven-plugin:2.0.3.RELEASE:repackage (default) @ eureka-server ---
    [INFO] 
    [INFO] --- docker-maven-plugin:0.4.3:build (default-cli) @ eureka-server ---
    [INFO] Copying /home/web/workspace/tms-callcenter/eureka-server/target/eureka-server-0.0.1-SNAPSHOT.jar -> /home/web/workspace/tms-callcenter/eureka-server/target/docker/eureka-server-0.0.1-SNAPSHOT.jar
    [INFO] Copying src/main/docker/Dockerfile -> /home/web/workspace/tms-callcenter/eureka-server/target/docker/Dockerfile
    [INFO] Building image tms/eureka-server
    Step 1/5 : FROM java:8
     ---> d23bdf5b1b1b
    Step 2/5 : VOLUME /tmp
     ---> Using cache
     ---> 5308d9a48e23
    Step 3/5 : ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar
     ---> e26005362082
    Removing intermediate container ae0edcf3f17c
    Step 4/5 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
     ---> Running in f7ed354189de
     ---> 4c365be95f2f
    Removing intermediate container f7ed354189de
    Step 5/5 : EXPOSE 8060
     ---> Running in 279cee1f4c28
     ---> e26719477043
    Removing intermediate container 279cee1f4c28
    Successfully built e26719477043
    [INFO] Built tms/eureka-server
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 25.808 s
    [INFO] Finished at: 2018-08-07T18:08:55+08:00
    [INFO] ------------------------------------------------------------------------

     

    四 用docker部署

      1.查看docker images

      

    [root@Master eureka-server]# docker images
    REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
    tms/eureka-server       latest              e26719477043        2 minutes ago       699 MB
    <none>                  <none>              e48f8ad62799        3 hours ago         699 MB
    <none>                  <none>              59d323a94109        7 hours ago         707 MB
    docker.io/hello-world   latest              2cb0d9787c4d        3 weeks ago         1.85 kB
    docker.io/java          8                   d23bdf5b1b1b        18 months ago       643 MB
    docker.io/ubuntu        15.10               9b9cb95443b5        2 years ago         137 MB
    [root@Master eureka-server]# 

      2.运行镜像

    [root@Master eureka-server]# docker run -p 8061:8061 -d  tms/eureka-server --spring.profiles.active=peer2
    1d4cd0fb70a9da0260a13658b957993ddac78e430b82a670275b1d5de4468a3f

    -d 后台运行 -p port1:port2 port1表示对外端口号  port2没啥用   

    五 检验是否正确

     

  • 相关阅读:
    (原创)c#学习笔记10--定义类成员01--成员定义06--自动属性
    (原创)c#学习笔记10--定义类成员01--成员定义03--定义属性
    (原创)c#学习笔记10--定义类成员01--成员定义02--建立方法
    【BZOJ3110】K大数查询(ZJOI2013)-整体二分+线段树
    【BZOJ3110】K大数查询(ZJOI2013)-整体二分+线段树
    【HDU5412】CRB and Queries-整体二分:带修改区间第K小
    【HDU5412】CRB and Queries-整体二分:带修改区间第K小
    【NOI2007T2】货币兑换-DP斜率优化+CDQ分治
    【NOI2007T2】货币兑换-DP斜率优化+CDQ分治
    【BZOJ3295】动态逆序对(CQOI2011)-CDQ分治:三维偏序
  • 原文地址:https://www.cnblogs.com/pangyangqi/p/9438634.html
Copyright © 2011-2022 走看看