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包
  • 相关阅读:
    Vue(知识讲解)
    爬虫框架:scrapy
    爬虫性能相关
    MongoDB
    Beautifulsoup模块
    selenium模块
    requests模块
    爬虫(集锦)
    爬虫目录
    Flask目录
  • 原文地址:https://www.cnblogs.com/yiweiblog/p/12652566.html
Copyright © 2011-2022 走看看