使用Maven插件构建Docker镜像

使用Maven插件构建Docker镜像,第1张

使用Maven插件构建Docker镜像 使用Maven插件构建Docker镜像

本文主要介绍如何使用Maven插件将SpringBoot应用打包为Docker镜像,并上传到私有镜像仓库Docker Registry的过程。

1、SpringBoot工程设置 1.1、pom文件


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

    com.wnx.mall.tiny
    mall-tiny-docker
    0.0.1-SNAPSHOT
    mall-tiny-docker
    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
        
        
        
            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.2、application.yaml文件
server:
  port: 8080

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

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

2、Docker设置 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、Docker Registry 2.0搭建
docker run -d -p 5000:5000 --restart=always --name registry2 registry:2
2.3、Docker配置修改
  • 修改配置文件
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 -uroot -proot
grant all privileges on *.* to 'root'@'%';
create database mall character set utf8;
  • window连接导入sql
3.2、Boot服务启动
  • 执行会发现,他会先把你的SpringBoot项目打包,再整成镜像上传到你的DockerImages中。
Lifecycle>package
  • 运行
docker run -p 8080:8080 --name mall-tiny-docker 
--link mysql:db 
-v /etc/localtime:/etc/localtime 
-v /mydata/app/mall-tiny-docker/logs:/var/logs 
-d mall-tiny/mall-tiny-docker:0.0.1-SNAPSHOT

4、测试

http://106.55.226.70:8080/swagger-ui.html

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存