把springboot项目直接编译成镜像文件到远程docker服务器
背景由于我本地在windows上开发一个spring boot项目,需要使用docker-maven-plugin插件将项目编译为docker镜像到远程linux服务器,所以远程linux服务器上的docker必须开启docker api服务。具体步骤编辑docker宿主机文件/lib/systemd/system/docker.servicesudo vi /lib/systemd/...
背景
由于我本地在windows上开发一个spring boot项目,需要使用docker-maven-plugin插件将项目编译为docker镜像到远程linux服务器,所以远程linux服务器上的docker必须开启docker api服务。
具体步骤
- 编辑docker宿主机文件/lib/systemd/system/docker.service
sudo vi /lib/systemd/system/docker.service
- 修改以ExecStart为开头的行
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
- 保存修改后的文件
- 通知docker服务做出的修改
systemctl daemon-reload
- 重启docker服务
sudo service docker restart
- 测试可以连接到docker api
curl http://localhost:2375/version
- 在windows机器上配置环境变量,DOCKER_HOST=tcp://192.168.40.32:2375(docker宿主机的ip地址)
- eclipse中maven项目的pom.xml文件内容:
-
<modelVersion>4.0.0</modelVersion>
<groupId>com.bolingcavalry</groupId>
<artifactId>k8stomcatdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging><name>k8stomcatdemo</name>
<description>Demo project for Spring Boot</description><parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath />
</parent><properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties><dependencies>
<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><build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin><!--新增的docker maven插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.12</version>
<!--docker镜像相关的配置信息 -->
<configuration>
<!--镜像名,这里用工程名 -->
<imageName>zsj/${project.artifactId}</imageName>
<!-- 您可以强制docker覆盖每个新构建的图像标记: -->
<forceTags>true</forceTags>
<!--TAG,这里用工程版本号 -->
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<!--镜像的FROM,使用java官方镜像 -->
<baseImage>java:8u111-jdk</baseImage>
<!--该镜像的容器启动后,直接运行spring boot工程 -->
<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>
</configuration>
</plugin>
</plugins>
</build> - 在eclipse中选择maven,Run Configurations,配置如下信息,然后点击RUN按钮。
- 上一步骤进行完之后,需要耐心等待,过程比较缓慢。
以上步骤都完成之后,在docker服务器上运行docker images,就可以看到本项目编译之后的镜像。
更多推荐
所有评论(0)