spring-boot-plus docker-compose快速启动
spring-boot-plus docker-compose快速启动
spring-boot-plus简介
spring-boot-plus是一套集成spring boot常用开发组件的后台快速开发框架
详见官网 https://springboot.plus/
使用docker-compose启动
安装docker
安装docker可参考 菜鸟教程 Docker 安装
其他系统安装中,已包含docker-compose,Linux要额外安装docker-compose,请自行百度
笔者为window10系统,使用Docker for Windows Installer安装,另推荐使用portainer界面管理docker
打包spring-boot-plus.jar
- 复制application-local.yml文件,重命名为application-docker.yml,修mysql地址、redis地址为mysql和redis
- 修改pom.xml,添加docker打包配置
<profile>
<id>docker</id>
<properties>
<profileActive>docker</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
- 运行命令打包
mvn -DskipTests -Pdocker clean package
docker-compose启动所需文件
- 创建文件spring-boot-plus/docker-compose.yml
service名称可自行修改,mysql、redis对应前面application-docker.yml中mysql、redis访问路径配置
version: '2'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8888:8888" #访问app应用端口
environment:
# 添加spring.config.additional-location环境变量,配置外放
"spring.config.additional-location": /config/
volumes:
# app配置目录
- ${APP_DIR}/config:/config
- ${APP_DIR}/tmp:/tmp
depends_on:
# 依赖
- mysql
- redis
mysql:
image: docker.io/mysql:5.7
ports:
- "3341:3306" # mysql本地访问端口,可注释
environment:
# MYSQL_DATABASE: spring-boot-plus
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_ROOT_HOST: '%'
volumes:
# mysql数据库数据文件
- ${MYSQL_DIR}/data:/var/lib/mysql
restart: always
redis:
image: redis
# ports:
# - 6379:6379 # redis本地访问端口
volumes:
- ${REDIS_DIR}/conf:/usr/local/etc/redis # redis配置文件目录
- ${REDIS_DIR}/data:/data # redis数据目录
command:
# 执行的命令
redis-server /usr/local/etc/redis/redis.conf
restart: always
- 创建文件spring-boot-plus/.env
# .env文件内容
# app
APP_DIR=/d/ProgramData/docker-data/spring_boot_plus
# redis
REDIS_DIR=/d/ProgramData/docker-data/spring_boot_plus/redis
# mysql
MYSQL_DIR=/d/ProgramData/docker-data/spring_boot_plus/mysql
MYSQL_ROOT_PASSWORD=root # 用户root密码
- 创建文件spring-boot-plus/Dockerfile
FROM java:8
VOLUME /tmp
ADD spring-boot-plus.jar app.jar
RUN bash -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar"]
- 复制target/spring-boot-plus.jar到spring-boot-plus/spring-boot-plus.jar
使用docker-compose命令
进入spring-boot-plus目录,运行命令
docker-compose up #启动,控制台同时打印所有容器的输出信息
docker-compose up -d #后台启动
docker-compose up -d --build #强制执行Dockerfile文件,后台启动
docker-compose stop #停止docker-compose.yml文件相关容器
docker-compose down #移除docker-compose.yml文件相关容器
启动后,portainer containers界面信息展示
可通过localhost:8888/docs访问swagger页面