Doker

Idea开发工具springboot项目自动打包成docker镜

2019-11-04  本文已影响0人  司幽公子

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

image.png

注意:访问失败的话看下是否开放了2375端口


5、idea安装docker插件

image.png
  1. 配置远程连接docker,看到successful即表示连接成功
image.png

7、配置成功后左下角会出现docker图标

image.png

8、在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.png

11、执行运行,成功访问

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>
上一篇 下一篇

猜你喜欢

热点阅读