欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

阿里云服务器Docker中部署SpringBoot项目

程序员文章站 2024-01-12 13:27:40
...

1.修改pom.xml

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

在properties节点中加入<docker.image.prefix>springboot</docker.image.prefix>

    <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- Docker maven plugin -->
            <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>

在plugins中加入maven相关的依赖。

修改完pom文件后,打开Maven projects,先clean,然后package。

阿里云服务器Docker中部署SpringBoot项目

运行完后去项目目录下找到所生成的jar包。我这边生成的jar包名称为"shopping-0.0.1-SHAPSHOT.jar"。

注意:如果生成的jar包中含有大写字母,在docker中构造镜像时会报错。所以可以手动去修改生成jar的名称,也可以在pom文件中指定生成jar的名称。

阿里云服务器Docker中部署SpringBoot项目

在<build>中使用<finalName>标签可以指定生成jar的名。

 <build>
        <finalName>shopping</finalName>
</build>

2.编写Dockerfile

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

具体意义,自行百度。

3.构建镜像

将生成好的jar包和写好的Dockerfile文件放在服务器上的同一个目录下。

在控制台中定位到该目录下,然后运行“docker build -t jar包名 .”,jar包名改成自己的项目名称,注意后面还有个" 空格+."。然后回车。

阿里云服务器Docker中部署SpringBoot项目

等待下面所有进程跑完后,输入“docker images”,此时看镜像是否存在,如果存在证明没问题。

阿里云服务器Docker中部署SpringBoot项目

然后输入"docker run -d --name shopping -p 8080:8080 fa6be42b5a67",回车等待容器启动。

可以输入docker logs 容器名查看启动日志。里面基本上就是一些tomcat的启动日志,没有其它的。

阿里云服务器Docker中部署SpringBoot项目

等待项目成功启动,可以通过ip:8080进行访问。如果使用阿里云服务器,记得把端口开放。

4.总结

基本上也没啥子难点,按照这个流程下来都会成功。里面很多东西我也只是跟着配的,不知道原理是什么。如果有错误,还清大家指出。