Idea开发工具springboot项目自动打包成docker镜像发布
1、首先修改docker的配置文件
vi /lib/systemd/system/docker.service
2、找到ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 在其后面添加-H tcp://0.0.0.0:2375
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
3、重启docker容器
systemctl daemon-reload && systemctl restart docker
4、浏览器访问(出现如下则配置成功)
宿主机地址:2375/version
注意:访问失败的话看下是否开放了2375端口
5、idea安装docker插件
image.png- 配置远程连接docker,看到successful即表示连接成功
7、配置成功后左下角会出现docker图标
image.png8、在pom引入docker相关插件
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
</dependency>
<properties>
<docker.image.prefix>docker-demo</docker.image.prefix>
</properties>
<build>
<plugins>
<!-- docker构建插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!-- 生成的docker镜像名称 -->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- 复制jar包到指定目录 -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
9、在项目 src/main
目录下创建 docker
目录与 Dockerfile
文件
Dockerfile配置如下
# 指定基础镜像 这里springboot项目运行只需要java jdk环境即可
FROM java:8
# 维护者信息
MAINTAINER rafeily
WORKDIR app
# 重命名
ADD *.jar /app/app.jar
# 对外暴漏的端口号
#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8110
CMD java -jar /app/app.jar
10、配置文件配置
image.png image.png11、执行运行,成功访问
image.png image.png image.png注意:如果使用springboot出现main入库找不到在build那里输入主类入口,重新打包所有依赖的工程
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
<mainClass>com.atguigu.gulimall.gateway.GulimallGatewayApplication</mainClass>
</configuration>
</plugin>
网友评论