声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接
本文可以实现:将Spring Boot项目从GitHub clone到服务器上后,一条命令直接完成依赖下载-编译-镜像生成-容器运行。
注意:本文Spring Boot项目为单机部署,即只在一台服务器进行部署,并使用Maven构建项目,通过公网IP访问数据库。
前提
Spring Boot项目已可使用Maven打包为jar文件,并可通过java -jar example-0.0.1-SNAPSHOT.jar启动此文件。
必须安装Docker,Docker Compose。
操作
-
第一步:在项目根目录下创建文件Dockerfile,内容如下,本文项目使用的是jdk11,开放8086端口。注意:需要将下文的两处example-0.0.1-SNAPSHOT
改为你的项目的名字。
FROM maven:3.8.3-openjdk-11 AS MAVEN_BUILD
COPY settings.xml /usr/share/maven/conf/settings.xml
COPY pom.xml /build/
COPY src /build/src/
WORKDIR /build/
RUN mvn package
FROM maslick/minimalka:jdk11
COPY --from=MAVEN_BUILD /build/target/example-0.0.1-SNAPSHOT.jar /app/
EXPOSE 8086
ENTRYPOINT ["java","-jar","/app/example-0.0.1-SNAPSHOT.jar"]
-
第二步:在项目根目录下创建文件settings.xml,目的是为了替换掉Maven官方源,使用国内源,文件内容如下:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>central repo</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>apache snapshots</mirrorOf>
<name>阿里云阿帕奇仓库</name>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
</mirror>
</mirrors>
<proxies/>
<activeProfiles/>
<profiles>
<profile>
<repositories>
<repository>
<id>aliyunmaven</id>
<name>aliyunmaven</name>
<url>https://maven.aliyun.com/repository/public</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>MavenCentral</id>
<url>http://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>aliyunmavenApache</id>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
</repository>
</repositories>
</profile>
</profiles>
</settings>
- 第三步:在项目根目录下创建文件docker-compose.yml,内容如下:
version: '3'
services:
web:
build: .
ports:
- "8086:8086"
此时内容已经填充完毕,可以将项目推送至GitHub,下面一条命令直接从源代码部署运行。
在项目根目录下,执行如下命令,
docker-compose up
如果你想在后台执行该服务可以加上 -d 参数:
docker-compose up -d
等待项目构建运行即可!
最后
项目构建运行完成之后,通过docker images
会发现除了多出了一个我们刚构建的项目镜像之外,额外多了两个镜像maven:3.8.3-openjdk-11
和minimalka:jdk11
,这是构建我们自己的镜像时必须要用的基础镜像,如果以后还需要再此构建项目,可以将这两个镜像保留,否则可以将其删除。
如果项目要连接数据库,可以使用公网IP进行连接,下文将Springboot与Mysql进行了部署。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)