使用 Docker 部署 Spring boot 项目
2023-02-27 15:23:50
## 将项目打包为 jar
```
$ mvn clean package -Dmaven.test.skip=true
```
执行成功后,你可以在 target 目录中找到对应 jar 包,例如 demo-1.0-SNAPSHOT.jar
## 上传到 Linux 服务器
```
$ scp target/demo-1.0-SNAPSHOT.jar root@服务器IP:/opt/
```
## 构建 Docker 镜像
登录 Linux,`cd /opt` 创建 Dockerfile 文件内容如下
```
FROM pfinal/java:8u301
ADD ./demo.jar /data/app.jar
WORKDIR /data
ARG APP_VERSION
ENV APP_VERSION "${APP_VERSION}"
ENV JAVA_OPTS ""
EXPOSE 8080
ENTRYPOINT java ${JAVA_OPTS} -jar app.jar
```
开始构建镜像
```
$ docker build -t demo:1.0 .
```
Dockerfile 假定 JAR 文件的名称为 demo.jar,并且位于与 Dockerfile 相同的目录中。EXPOSE 指令指定容器将在端口 8080 上监听,JAVA_OPTS 环境变量可用于在运行时向容器传递额外的 JVM 选项。
## 启动
```
$ docker run -d -p 8080:8080 demo:1.0
```
docker run 命令中的 -p 选项将容器的 8080 端口映射到主机的 8080 端口