项目打包
可采用mvn指令打包,也可以用idea开发工具中的maven插件进行打包
编写Dockerfile文件
编写Dockerfile文件
vi Dockerfile
文件内容如下:
FROM openjdk:11-jdk-alpine
COPY xxx.jar xxx.jar
#设置镜像的时区,避免出现8小时的误差
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig
EXPOSE 7779
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/xxx.jar"]
其中,
xxx.jar
为自己项目的jar包名称,端口号根据需要修改
jar包和Dockerfile文件目前在同一目录下
编写docker-compose.yml配置文件
创建docker-compose.yml文件
vi docker-compose.yml
文件内容如下:
version: '2'
services:
springboot-program:
image: imageName
container_name: cbb-admin
build: ./xxx
ports:
- 7779:7779
depends_on:
- mysql
- redis
extra_hosts:
- "10.168.1.113:10.168.1.113"
其中,
depends_on
的参数表示要依赖的镜像,目前的数据库和redis镜像都已经在docker容器中启动
xxx指的是Dockerfile文件的位置
运行
docker-compose up -d --build
遇到的问题
1.spring-boot项目中的配置文件,数据库版本匹配问题
mysql8.x版本的数据库在连接的时候报错java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
只要在url的后边加上allowPublicKeyRetrieval=true即可
jdbc:mysql://localhost:3306/test?serverTimezone=GMT&allowPublicKeyRetrieval=true&useSSL=false&characterEncoding=utf8;