使用Docker Compose部署SpringBoot项目

使用Docker Compose部署SpringBoot项目,第1张

使用Docker Compose部署SpringBoot项目 使用Docker Compose部署SpringBoot项目 1、Window环境准备 1.1、application.yaml
server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: root

mybatis:
  mapper-locations:
    - classpath:mapper/*.xml
    - classpath*:commapper/*.xml

1.2、pom.xml


    4.0.0

    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.3.RELEASE
         
    

    com.wnx.mall.tiny
    mall-tiny-docker-compose
    0.0.1-SNAPSHOT
    mall-tiny-docker-compose
    Demo project for Spring Boot

    
        UTF-8
        UTF-8
        1.8
        true
    



    
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            org.springframework.boot
            spring-boot-starter-aop
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.2.10
        
        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.10
        
        
        
            org.mybatis.generator
            mybatis-generator-core
            1.3.7
        
        
        
            mysql
            mysql-connector-java
            5.1.49
        
        
        
            io.springfox
            springfox-swagger2
            2.7.0
        
        
            io.springfox
            springfox-swagger-ui
            2.7.0
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                com.spotify
                docker-maven-plugin
                1.1.0
                
                    
                        build-image
                        package
                        
                            build
                        
                    
                
                
                    mall-tiny/${project.artifactId}:${project.version}
                    http://106.55.226.70:2375
                    java:8
                    ["java", "-jar","/${project.build.finalName}.jar"]
                    
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            
        
    


1.3、docker-compose.yml
version: '3'
services:
  # 指定服务名称
  db:
    # 指定服务使用的镜像
    image: mysql:5.7
    # 指定容器名称
    container_name: mysql
    # 指定服务运行的端口
    ports:
      - 3306:3306
    # 指定容器中需要挂载的文件
    volumes:
      - /mydata/mysql/log:/var/log/mysql
      - /mydata/mysql/data:/var/lib/mysql
      - /mydata/mysql/conf:/etc/mysql
    # 指定容器的环境变量
    environment:
      - MYSQL_ROOT_PASSWORD=root
  # 指定服务名称
  mall-tiny-docker-compose:
    # 指定服务使用的镜像
    image: mall-tiny/mall-tiny-docker-compose:0.0.1-SNAPSHOT
    # 指定容器名称
    container_name: mall-tiny-docker-compose
    # 指定服务运行的端口
    ports:
      - 8080:8080
    # 指定容器中需要挂载的文件
    volumes:
      - /etc/localtime:/etc/localtime
      - /mydata/app/mall-tiny-docker-compose/logs:/var/logs
2、Linux环境准备 2.1、下载Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
systemctl start docker
2.2、配置并启动Dokcer
  • 修改docker.service
docker run -d -p 5000:5000 --restart=always --name registry2 registry:2
vi /usr/lib/systemd/system/docker.service
修改的部分:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
  • 支持HTTP上传镜像
echo '{ "insecure-registries":["106.55.226.70:5000"] }'>/etc/docker/daemon.json
systemctl daemon-reload
systemctl stop docker
systemctl start docker
3、启动服务 3.1、启动MySQL服务
  • 运行MySQL并进入容器内部
docker run -p 3306:3306 --name mysql 
-v /mydata/mysql/log:/var/log/mysql 
-v /mydata/mysql/data:/var/lib/mysql 
-v /mydata/mysql/conf:/etc/mysql 
-e MYSQL_ROOT_PASSWORD=root  
-d mysql:5.7
docker exec -it mysql /bin/bash
  • 让MySQL支持远程连接
mysql -uroot -proot
grant all privileges on *.* to 'root'@'%';
  • 导入SQL文件
create database mall character set utf8;
window连接导入sql
3.2、Docker-compose配置
  • 下载Docker-compose并设置文件权限,通过查看版本来验证安装成功了吗?
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
  • Lifecycle>package,打包成镜像上传Docker

  • 将docker-compose.yml上传至Linux服务器

  • 运行Docker Compose命令启动所有服务

docker-compose up -d
4、测试
http://106.55.226.70:8080/swagger-ui.html

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5694141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存