用maven打包
mvn packge
打包过后的文件一般在target文件夹里
以下命令都可以打包
Mvn package: 打包项目到本项目,一般在target目录下
Mvn install: 打包项目到本地仓库,需要在maven中设置
mvn deploy:打包上传到远程仓库,如:私服nexus等,需要配置pom 文件。
Docker部分
- Docker hub一定要登录在本地->
docker login - 创建docker file(Dockerfile是一个文本文件,其中包含一系列的指令和配置,用于定义如何构建一个Docker容器镜像)
FROM amazoncorretto:21 #这一行指定了基础镜像,可以把它理解为项目依赖
#添加标签信息, 新版docker不建议使用MAINTAINER参数
LABEL maintainer="User <moon@example.com>"
LABEL description="My Java Application"
LABEL version="1.0"
LABEL license="MIT"
#暴露8085端口
EXPOSE 8085
#复制本地的backend-0.0.1-SNAPSHOT.jar并重命名为app.jar
ADD target/backend-0.0.1-SNAPSHOT.jar app.jar
#入口,开始运行时执行的命令,这里是-jar不是.jar,.jar会报错
ENTRYPOINT ["java","-jar","/app.jar"]
3.构建docker
在包含 Dockerfile 的目录中运行以下命令来构建 Docker 镜像:
docker build
之后会显示ImageID
4.推送到docker hub
首先,标记您的镜像:
docker tag your-imageID username/repository:tagname
其中,your-image 是您的本地镜像名称,username 是您的 Docker Hub 用户名,repository 是您要推送到的仓库名,而 tag 是您为这个版本的镜像设置的标签(如 latest)。
然后,推送到 Docker Hub:
docker push yourusername/your-app-name:tagname
注意这两个tagname名字必须相同
- 创建docker-compose.yml
docker-compose.yml 文件是一个配置文件,用于告诉计算机如何运行多个容器化应用程序的不同部分。就是一个配置文件告诉docker以什么样的配置运行docker Image
version: '3'
services:
app:
image: 你的docker image
ports:
- "8085:8085" #"主机端口:容器端口"主机的端口 8085 会映射到容器的端口 8085
environment:
#这里的配置可以覆盖application里面的配置
- SPRING_DATASOURCE_URL=jdbc:postgresql:
- SPRING_DATASOURCE_USERNAME=TestUser
- SPRING_DATASOURCE_PASSWORD=scsbchdbsjhdbsjcs
在服务器上的操作
- 上传docker-compose.yml到服务器
- 在服务器上也要docker login,注意在服务器上大多数docker 命令都要在前面加sudo提权
- 在服务器上下载docker
Docker compose up -d-d代表使容器在后台运行,并不占用终端。- 记得一定要在服务器设置里面打开防火墙,在测试环境下可以开放所有端口,因为如果指定的端口被占用了会切换到另一个端口
- 访问不了 docker ps查看正在运行的container,如果开不到刚才启动的container说明程序错误,可以用docer ps -a查看所有container。一般都是image没配置对,或者docker-compose.yml里缺少必填的参数