使用Maven 插件构建docker 镜像和推送仓库
来源:互联网 发布:unity3d 2d人物移动 编辑:程序博客网 时间:2024/05/18 03:14
案例 spring cloud eureka server 构建 docker 镜像 和推送仓库
fox.风
项目 pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.foxwho</groupId> <artifactId>fox-eureka-server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>fox-eureka-server</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.BUILD-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.BUILD-SNAPSHOT</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <executions> <!--执行 mvn package 时 自动 执行 mvn docker:build--> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--推送到私有仓库--> <!-- <imageName>localhost:5000/fox/fox-eureka-server</imageName> --> <!--本地--> <imageName>fox/fox-eureka-server</imageName> <imageTags> <imageTag>0.0.1</imageTag> <!--可以指定多个标签--> <imageTag>latest</imageTag> </imageTags> <!--覆盖已存在的标签 镜像--> <forceTags>true</forceTags> <!--使用pom 配置--> <baseImage>java</baseImage> <entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint> <!--使用pom 配置 END--> <!--使用 Dockerfile--> <!--<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--使用 Dockerfile END--> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories></project>
构建命令 及启动docker 镜像
mvn package或mvn clean package
启动docker 镜像
docker run -d -p 1111:1111 fox/fox-eureka-server:0.0.1 --name fox-eureka-server:0.0.1
1111 是 fox-eureka-server 内的端口
其他说明
自动构建docker 镜像配置主要在 plugin
中的com.spotify
内
说明:
合并构建命令
<execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution>
此配置 主要是 执行 mvn package
时 自动 执行 mvn docker:build
,如果没有此配置那么要执行
mvn pakage docker:build或mvn clean pakage docker:build
同时推送镜像到仓库
推送远程仓库
在MAVEN 的全局配置文件settings.xml
加入或修改
<servers><server> <id>docker-hub</id> <username>docker Hub 的用户名</username> <password>docker Hub 的密码</password> <configuration> <email>docker Hub 的邮箱</email> </configuration></server></servers>
接着修改 pom.xml
中的 plugin
的com.spotify
在configuration
元素内增加
<!--就是settings.xml 中 server.id --><serverId>docker-hub</serverId>
执行命令
mvn clean package -DpushImage
注意:pushImage
标识,标识推送镜像标识,没有此标识,则不推送
推送到本地仓库
本地仓库很简单
修改 pom.xml
中的 plugin
的com.spotify
的configuration.imageName
元素增加 本地地址和端口即可
例如:本地 仓库地址及端口为 http://localhsot:5000
原 imageName
为
<imageName>fox/fox-eureka-server</imageName>
修改为
<imageName>localhost:5000/fox/fox-eureka-server</imageName>
执行命令
mvn clean package -DpushImage
注意:pushImage
标识,标识推送镜像标识,没有此标识,则不推送
代码地址:https://github.com/foxiswho/example-java-spring-cloud/tree/master/fox-eureka-server
docker compose 编排
修改所有微服务配置eureka.client.serviceUrl.defaultZone
(fox-eureka-server
除外):
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/
注意,以上修改完成后,要重新构建及推送到仓库
docker-compose.yml
文件如下
version : "2"services : peer1: image:fox/fox-eureka-server:0.0.1 ports: - "1111:1111" environment: - spring.profiles.active=peer1 peer2: image:fox/fox-eureka-server:0.0.1 ports: - "1112:1112" environment: - spring.profiles.active=peer2 service-provider: image:fox/fox-eureka-service-provider:0.0.1 feign-service--consumer: image:fox/fox-eureka-feign-service-consumer:0.0.1 api-gateway: image:fox/api-gateway:0.0.1 config-eureka-server: image:fox/config-eureka-server:0.0.1 config-eureka-client: image:fox/config-eureka-client:0.0.1 fox-dashboard: image:fox/fox-dashboard:0.0.1
注意,这里只是一个 docker compose 案例,具体需要开启哪些端口需要 自己去配置
最后执行命令
docker-compose up
打开浏览器 网址 http://localhost:1111
即可看到效果
- 使用Maven 插件构建docker 镜像和推送仓库
- 使用Maven插件构建Docker镜像
- 1.7 Docker与微服务-使用Maven插件构建Docker镜像
- 使用Docker镜像和仓库
- docker镜像和仓库
- maven构建docker镜像三部曲之二:编码和构建镜像
- docker镜像仓库harbor快速部署和使用
- 使用docker构建镜像
- jenkins 自动构建docker 推送镜像发布镜像
- Docker:使用Jenkins构建Docker镜像
- 使用国内docker 镜像仓库
- 使用阿里云Maven仓库镜像地址——加速你的maven构建
- Docker镜像和仓库笔记
- 什么是Docker镜像、容器和仓库?
- 011-从Git仓库构建Docker镜像
- shell docker 镜像推送的使用
- Docker 入门使用 镜像编排 docker仓库 命令总结
- maven使用国内阿里仓库镜像
- centos7 设置当前运行级别和默认运行级别
- springMVC 谨慎使用成员变量
- JanusGraph本地可连接,外部无法连接
- [绍棠] iphone手机机型判断
- centos7编译openjdk1.7过程及报错解决
- 使用Maven 插件构建docker 镜像和推送仓库
- ros 编译ROS程序前要做的事
- AndroidStudio一直处于Refreshing 'xxx' Gradle Project状态
- xgboost算法原理
- LFS8.0 构建LFS系统MPCconfigure 报错
- NYOJ 74
- C++PrimerPlus笔记
- markdown基本语法
- 计算1-1/2+1/3-1/4+……1/99-1/100+……,直到绝对值小于1/10000为止