Idea集成docker实现镜像打包

20 篇文章 0 订阅
9 篇文章 0 订阅

1、Docker开启远程访问

#修改该Docker服务文件

vi /lib/systemd/system/docker.service

#修改ExecStart这行,将文件内的 ExecStart注释。 新增如上行。

#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

#重新加载配置文件

systemctl daemon-reload

#重启服务

systemctl restart docker.service

#查看端口是否开启

netstat -nlpt  #如果找不到netstat命令,可进行安装。yum install net-tools

#直接curl看是否生效

curl http://127.0.0.1:2375/info

2、IDEA安装Docker插件

打开Idea,从File->Settings->Plugins->Install JetBrains plugin进入插件安装界面,

在搜索框中输入docker,可以看到DockerDocker integration,点击右边的Install按钮进行安装。

安装后重启Idea。

3、IDEA配置docker

配置docker,连接到远程docker服务。

File->Settings->Build,Execution,Deployment->Docker打开配置界面

连接成功后,在IDEA工具中即可 操作Docker:

4、docker-maven-plugin

传统过程中,打包、部署、等。

而在持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效

率,同时能够快速动态扩容,快速回滚,着实很方便。

docker-maven-plugin 插件就是为了帮助我们在Maven工程中,通过简单的配置,自动生成镜像并推送到仓库中。

pom.xml 

<properties> 

    <docker.image.prefix>testSpringBoot</docker.image.prefix>

</properties>

<build>

    <plugins>

        <plugin>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-maven-plugin</artifactId>

            <version>1.0.0</version>

        </plugin>

        <!-- docker插件配置 -->

        <plugin>

            <groupId>com.spotify</groupId>

            <artifactId>docker-maven-plugin</artifactId>

            <version>1.0.0</version>

                <configuration>

                    <!-- 镜像名称 testspringboot-->

                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>

                    <!--指定标签-->

                    <imageTags>

                        <imageTag>latest</imageTag>

                    </imageTags>

                    <!-- 基础镜像jdk 1.8-->

                    <baseImage>java</baseImage>

                    <!-- 制作者提供本人信息 -->

                    <maintainer>BruceWong brucewong888@qq.com</maintainer>

                    <!--切换到/ROOT目录 -->

                    <workdir>/ROOT</workdir>

                    <cmd>["java", "-version"]</cmd>

                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>

                    <!-- 指定 Dockerfile 路径

                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>

                    -->

                    <!--指定远程 docker api地址-->

                    <dockerHost>http://139.159.191.242:2375</dockerHost>

                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->

                    <resources>

                        <resource>

                            <targetPath>/ROOT</targetPath>

                            <!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->

                            <directory>${project.build.directory}</directory>

                            <!--用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。-->

                            <include>${project.build.finalName}.jar</include>

                        </resource>

                    </resources>

                </configuration>

         </plugin>

    </plugins>

</build>

其实如上操作是用docker-maven插件,自动生成了Dockerfile文件:

FROM java 

MAINTAINER BruceWong brucewong888@qq.com

WORKDIR /ROOT

ADD /ROOT/qfnj-0.0.1-SNAPSHOT.jar /ROOT/

ENTRYPOINT ["java", "-jar", "qfnj-0.0.1-SNAPSHOT.jar"]

CMD ["java", "-version"]

5、执行命令

在IDEA的Terminal中执行如下命令,对项目进行打包,并构建镜像到Docker 上。

mvn clean package docker:build


7、扩展配置

我们可以绑定 Docker 命令到 Maven 各个阶段,用于简化操作,将新版本代码打包发布到docker的操作,通过maven的package操作直接一键搞定

在docker插件配置 的plugin标签下增加如下配置

<!--当执行mvn package 时,则执行了: mvn clean package docker:build -->

<executions>

    <execution>

    <id>build-image</id>

    <phase>package</phase>

        <goals>

            <goal>build</goal>

        </goals>

    </execution>

</executions>

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值