zoukankan      html  css  js  c++  java
  • win10环境下使用docker部署spring-boot项目

    基本目录结构

    项目结构.png

    前置条件

    1. windows正常docker服务启动

    pom插件配置

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>2.2.1.RELEASE</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    	<groupId>com.sun</groupId>
    	<artifactId>docker-demo</artifactId>
    	<version>0.0.1</version>
    	<name>docker-demo</name>
    	<description>Demo project for Spring Boot</description>
    
    	<properties>
    		<java.version>1.8</java.version>
    		<docker.image.prefix>springboot</docker.image.prefix>
    	</properties>
    
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-devtools</artifactId>
    			<scope>runtime</scope>
    			<optional>true</optional>
    		</dependency>
    		<dependency>
    			<groupId>org.projectlombok</groupId>
    			<artifactId>lombok</artifactId>
    			<optional>true</optional>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    			<exclusions>
    				<exclusion>
    					<groupId>org.junit.vintage</groupId>
    					<artifactId>junit-vintage-engine</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
    	</dependencies>
    
    	<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.14</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>
    
    </project>
    
    

    Dockerfile文件配置

    FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    ADD docker-demo-0.0.1.jar app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    

    执行插件命令

    项目路径下执行 mvn clean package docker:build命令进行打包且构建镜像
    图片.png
    图片.png

    查看结果

    图片.png

    上面是利用插件进行构建镜像的方式;如果没有使用该插件可以直接将执行mvn package后生成的jar包,复制到含有Dockerfile的文件夹中,然后执行docker命令docker build -t docker-spring-demo:0.0.1 . 构建镜像

    踩坑记录

    1. Dockerfile写成DockerFile后,执行失败
      2.maven中<include>${project.build.finalName}.jar</include>.jar漏写之后,执行命令后一直找不到jar包
  • 相关阅读:
    cookie,session,token
    自己动手写一个简易对象关系映射,ORM(单例版和数据库池版)
    Python,针对指定文件类型,过滤空行和注释,统计行数
    MySQL 数据类型
    MySQL 基础小技巧
    Python测量时间,用time.time还是time.clock
    [计算机网络]想出网关?你需要懂得这些
    [数据结构与算法]05 Stack 经典面试题之判断字符串是否合法( Java 版)
    [自考总结]想要去的远方,终有一天会到达
    [数据结构与算法]04 Link List (链表)及单链表反转实现
  • 原文地址:https://www.cnblogs.com/yiweiblog/p/12652566.html
Copyright © 2011-2022 走看看