Docker-compose配置springboot项目


准备环境

  1. Docker(下载docker,最好使用阿里云加速)-- 参考狂神视频 安装教程
  2. Docker-compose 安装教程

一、在springboot添加docker插件

1.安装docker插件

2. 在pom.xml中添加配置

			<!-- Docker maven plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            <!-- Docker maven plugin -->

(在 build 下添加,而不是 dependencies
在这里插入图片描述


二、在项目下创建docker文件

创建位置如下:
在这里插入图片描述

1. Dockerfile

FROM openjdk:15
VOLUME /tmp
ADD boot-web-0.0.1.jar /app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

(即基于jdk15,添加项目jar包,名字要和打包好的jar包一致

2.docker-compose.yml

version: "3"

services:
  webapp:
    image: ppppk/tttm:1.0
    ports:
      - "8080:8080"
    volumes:
      - "/data"
    depends_on:
      - redis
      - mysql

  redis:
    image: redis:6.2.5
    restart: always
    privileged: true
    ports:
      - "6389:6379"
    volumes:
      - /home/pan/tttm/redis/redis.conf:/etc/redis/redis.conf
      - /home/pan/tttm/redis/data:/data
      - /home/pan/tttm/redis/redis.log:/redis/redis.log
    command: redis-server /etc/redis/redis.conf

  mysql:
    image: mysql:8.0
    restart: always
    command: --default-authentication-plugin=mysql_native_password --innodb-use-native-aio=0
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
    ports:
      - "3307:3306"
    volumes:
      - "/home/pan/tttm/mysql/data:/var/lib/mysql"
      - "/home/pan/tttm/mysql/my.cnf:/etc/my.cnf"


部分解释如下
在这里插入图片描述

无论是mysql还是redis的挂载目录,均要自己修改,设置在自己易于寻找的位置(可以先看四

  1. redis的挂载目录
    (1)第一个用于修改redis的配置信息,如使外部可连接,添加密码等(模板需要在官网下载,与容器外的conf文件不同
    (2)第二个用于存储redis数据
    (3)第三个用于查看redis的日志
  2. mysql的挂载目录
    (1)存储mysql数据
    (2)存储mysql配置文件

三、application.properties配置相应的mysql和redis地址

1. mysql

#Docker
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://xxxxxx/app?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=123456

在这里插入图片描述

2. redis

# docker
# RedisProperties
# database为0-15,否则报错
spring.redis.database=0
spring.redis.host=xxxxx
spring.redis.port=6389
spring.redis.timeout=5000
spring.redis.password=123456

在这里插入图片描述


四、 打包jar,下载redis.conf

1. 打包

在这里插入图片描述

打包后在target就会有jar包

在这里插入图片描述
去到项目文件找到它,记得它的名字要和Dockfile的jar包名字相同

2. redis.conf

http://download.redis.io/redis-stable/

在这里插入图片描述
下载并打开,进行如下修改

  1. 注释掉 bind 127.0.0.1
  2. protected-mode yes 改为 no
  3. appendonly no 改为 yes(持久化,我还没有改)
  4. requirepass改为与上面application.properties中redis的密码

五、 在服务器找个好位置设置yml的那些挂载目录

把上述的jar包,redis.conf,Dockerfile,docker-compose.yml放到相应位置

下面展示我的文件目录

1.总文件

在这里插入图片描述

2. redis

在这里插入图片描述

3. mysql

在这里插入图片描述


六、在服务器制作镜像与容器

1. 制作镜像

进入目录,执行如下命令

docker build -t ppppk/ttm:2.0 .

在这里插入图片描述
(名字要与yml的名字一致)

接着执行如下命令查看所有的镜像

docker images

在这里插入图片描述

发现ppppk/tttm已创建好

2. docker-compose一键部署

仍在此目录,执行如下命令,一键部署mysqlredis镜像并启动

docker-compose up

3. 在本地连接远程数据库添加数据

打开两个连接,一个连接本地数据库,一个连接远程数据库 (下图为远程数据库连接)

在这里插入图片描述

在本地数据库上导出sql文件

在这里插入图片描述
在这里插入图片描述

并把sql文件放在远程连接的询问框,执行即可

在这里插入图片描述

4. 为redis添加数据

由于现在的数据仅为用户的登录ticket,并不需要持久化,所以不需要进行,待以后补充


七、结束!!!!

如果上述操作都没有问题,可以打开网页查看你的网址了!!!

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值