1. 手动构建

  • 在jar所在目录编写DockFile

    1. FROM java:8
    2. ENV ARTIFACTID xxxxxx
    3. ENV ARTIFACTVERSION 1.0SNAPSHOT
    4. ENV HOME_PATH /home
    5. WORKDIR $HOME_PATH
    6. ADD /$ARTIFACTID$ARTIFACTVERSION.jar $HOME_PATH/$ARTIFACTID.jar
    7. ENTRYPOINT ["java", "‐jar", "xxxxxx.jar"]
  • 执行docker build -t xxxxxx:1.0-SNAPSHOT创建镜像

  • 创建容器

    1. docker create ‐‐name xxx t p 8080:8080 e PORT=8080 xxxxxx:1.0SNAPSHOT
  • 启动容器

    1. docker start xxx

    2. maven插件自动构建

  • 工程引入docker-maven-plugin

    1. <build>
    2. <!-- -->
    3. <finalName>${project.artifactId}‐${project.version}</finalName>
    4. <plugins>
    5. <!-- maven打包插件 -->
    6. <plugin>
    7. <groupId>org.springframework.boot</groupId>
    8. <artifactId>spring‐boot‐maven‐plugin</artifactId>
    9. </plugin>
    10. <!-- maven构建镜像插件:docker-maven-plugin -->
    11. <plugin>
    12. <groupId>com.spotify</groupId>
    13. <artifactId>docker‐maven‐plugin</artifactId>
    14. <version>1.0.0</version>
    15. <!-- docker镜像相关的配置信息 -->
    16. <configuration>
    17. <!-- 镜像名,这里用工程名 -->
    18. <imageName>${project.artifactId}‐${project.version}</imageName>
    19. <!-- Dockerfile文件所在目录 -->
    20. <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
    21. <!-- TAG,这里用工程版本号 -->
    22. <imageTags>
    23. <imageTag>${project.version}</imageTag>
    24. </imageTags> <imageName>${project.artifactId}:${project.version}</imageName>
    25. <!-- 如下3个配置是持续集成结合Jenkins使用,没有Jenkins可以不用 -->
    26. <!--<registryUrl>192.168.101.64:5000</registryUrl>-->
    27. <!--<pushImage>true</pushImage>-->
    28. <!--<imageName>192.168.101.64:5000/${project.artifactId}:${project.version}</imageName>-->
    29. <!-- 构建镜像的配置信息 -->
    30. <resources>
    31. <resource>
    32. <targetPath>/</targetPath>
    33. <directory>${project.build.directory}</directory>
    34. <include>${project.artifactId}‐${project.version}.jar</include>
    35. </resource>
    36. </resources>
    37. </configuration>
    38. </plugin>
    39. </plugins>
    40. </build>
  • src/main/resource目录编写DockerFile

    FROM java:8
    ENV ARTIFACTID xxxxxx
    ENV ARTIFACTVERSION 1.0‐SNAPSHOT
    ENV HOME_PATH /home
    WORKDIR $HOME_PATH
    ADD /$ARTIFACTID‐$ARTIFACTVERSION.jar $HOME_PATH/$ARTIFACTID.jar
    ENTRYPOINT ["java", "‐jar", "xxxxxx.jar"]
    
  • 在工程根目录执行

    mvn ‐f pom.xml clean package ‐DskipTests docker:build
    
  • 创建镜像成功