当前位置:   article > 正文

Docker-compose配置springboot项目_spring-boot-docker-compose

spring-boot-docker-compose


准备环境

  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 -->
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

(在 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"]
  • 1
  • 2
  • 3
  • 4

(即基于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"


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

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

无论是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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述


四、 打包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 .
  • 1

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

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

docker images
  • 1

在这里插入图片描述

发现ppppk/tttm已创建好

2. docker-compose一键部署

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

docker-compose up
  • 1

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

4. 为redis添加数据

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


七、结束!!!!

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/220956
推荐阅读
相关标签
  

闽ICP备14008679号