基于DockerMaven插件构建镜像部署
- 这是手动部署的升级版,全部配置好之后,只需要在idea上执行一下指定即可,自动上传到docker仓库,自动生成镜像,要注意需要在同一网关内,执行命令前需要手动修改一下配置文件对应的ip为服务名
- 修改宿主机的docker配置,让其可以允许远程访问
# 找到一下行进行修改 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
- 刷新配置,重启服务(配置仓库)
## 1 如果没有搭建则创建并启动容器 docker run -id --name=registry -p 5000:5000 registry ## 2 配置私有仓库地址 vi /etc/docker/daemon.json { "registry-mirrors": ["https://pasw6qxp.mirror.aliyuncs.com"], "insecure-registries": ["192.168.154.129:5000"] } ## 3 重启docker systemctl daemon-reload systemctl restart docker docker start registry boot_eureka
- 配置各服务的maven模板
<build> <!--修改app.jar--> <finalName>app</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--<version>1.5.9.RELEASE</version>--> </plugin> <!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <!--镜像的名称 跳过上传到私有仓库--> <imageName>${project.artifactId}:${project.version}</imageName> <!--上传到私有仓库--> <!--<imageName>192.168.154.129:5000/${project.artifactId}:${project.version}</imageName>--> <!--依赖一个基础镜像 带JDK 1.8--> <baseImage>java:8-alpine</baseImage> <!--java -jar app.jar --> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> <dockerHost>http://192.168.154.129:2375</dockerHost> </configuration> </plugin> </plugins> </build>
- 修改配置文件中的ip端口,如果是远程配置服务的也需要修改下
server: port: 12580 spring: application: name: config-server cloud: config: server: git: uri: https://gitee.com/dlw/config-test.git # 需要拉取配置的Git仓库地址 # username: # password: rabbitmq: # host: 192.168.154.129 host: rabbitmq # 打包时修改 username: guest password: guest virtual-host: / eureka: client: service-url: # defaultZone: http://127.0.0.1:10086/eureka/ # eureka地址 defaultZone: http://eureka:10086/eureka/ # 打包时修改 management: endpoints: web: exposure: include: bus-refresh
- 在idea中执行maven命令
# 打包并且将镜像上传到私有注册中心中 mvn clean package docker:build -DpushImage # 跳过上传 mvn clean package docker:build -DskipDockerPush
- 查看仓库
http://192.168.154.129:5000/v2/_catalog
- 将docke容器放到同一网关内
# 已启动的 docker network connect my-net eureka # 未启动 docker run -id --name=config_server --network my-net -p [宿主端口]:[容器端口] [镜像ID|镜像名称:tag]
- 验证,进入eureka中心查看服务是否注册成功