springboot整合docker部署

一、springboot 项目

1、新建一个springboot项目

2、对外提供一个访问接口

@RestController
public class TestController {
    @GetMapping("")
    public String test(){
        return "考试任务服务";
    }
}

3、在pom.xml中添加docker

 <properties>
        <java.version>1.8</java.version>
        <!--properties节点中设置docker镜像的前缀“springboot”-->
        <docker.image.prefix>springboot</docker.image.prefix>
    </properties>



 <!-- docker插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</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>

完整的 pom.xml

<?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.6.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.sinux</groupId>
    <artifactId>examtaskservice</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>examtaskservice</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <!--properties节点中设置docker镜像的前缀“springboot”-->
        <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-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.4.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>





            <!-- docker插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</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>

4、和pom.xml同级下创建Dockerfile

Ddockerfile内容如下:

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

5、在application.yml 添加端口号

server:
  port: 8880

6、将项目跑起来  ,看能不能访问。

7、成功后将项目打包

 8、在target文件夹下将会生成jar包

二、Linux下操作  配置运行环境

eg :  maven 、 jdk 、docker

注意:Docker运行,要求操作系统为64位,内核版本为3.10及以上。 

查看命令:uname -r

1、使用xshell 新建会话 连接远程的服务器

2、安装jdk

a、在网上下载jdk8

        网站地址:Java Downloads | Oracle

下载的时候,他会要求你登陆。

 b.将下载好的jdk-8u321-linux-x64.tar.gz直接拖拽到 usr/java文件夹中。

    没有可以先创建 cd usr mkdir java

c.解压 jdk-8u321-linux-x64.tar.gz

        tar -xzvf jdk-8u321-linux-x64.tar.gz

d.配置Java 环境变量

进入到文件中   vim /etc/profile 

注: insert键是插入  esc :wq 保存并推出

内容:

JAVA_HOME=/usr/java/jdk1.8.0_321
CLASSPATH=$JAVA_HOME/lib/ 
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

source /etc/profile

e.查看版本  

java -version

3、安装maven 

     a.  wget下载。当然也可以向上面jdk的方式

wget https://mirrors.tuna.tsinghua.edu.cn/apache
/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /usr/local/maven3

  b.配置环境变量

MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

     c.刷新环境

source /etc/profile

d.查看版本 确保成功

mvn -version

4、安装 docker

apt-get install docker

docker version

三、部署

1、在usr/创建文件夹docker

cd usr

mkdir docker

2、将项目中的examtaskservice-0.0.1-SNAPSHOT.jar 和Dockerfile文件夹复制到docker文件夹中

docker run -d -p 8880:8880 docker

3、查看服务器ip地址

 

4、在windows环境中通过 192.168.1.212:8880 访问接口

四、docker push 到指定仓库  hubor镜像仓库

五、Linux 常用命令

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值