w

wish611

V1

2023/05/03阅读:42主题:橙心

idea集成Docker配置

目前很多应用开发部署都是基于Docker容器化,为了简化本地开发测试,可以在idea中进行相关配置,即可实现本地打包部署高效率。

前置条件

  • 装有Docker的服务器
  • Idea

Docker服务器配置

  • 修改/usr/lib/systemd/system/docker.service配置:
vi /usr/lib/systemd/system/docker.service

在配置项ExecStart中加入 -H tcp://0.0.0.0:10086

  • 配置完成后记得重启docker

    systemctl daemon-reload 
    systemctl restart docker 
  • 顺便记得确认防火墙,相关端口记得开放:

    firewall-cmd --zone=public --add-port=10086/tcp --permanent

    firewall-cmd --reload
    #查看开放的端口
    firewall-cmd --list-all

idea配置:

  • settings->Build->Docker新增docker配置,输入docker服务所在ip及之前配置的端口
image-20230502211249778
image-20230502211249778
  • 配置Docker Registry,这步作用是方便拉取镜像打包时所依赖的其他镜像,如不配置国内镜像源,会容易出现镜像拉取失败:

    image-20230502211623623
    image-20230502211623623

建立示例工程测试:

  • idea中建个springboot工程,此步骤简单略过。

  • 修改pom.xml文件,加入plugin,dockerHost属性配置之前定义好的:

                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>1.2.2</version>
                    <executions>
                        <execution>
                            <id>build-image</id>
                            <phase>package</phase>
                            <goals>
                                <goal>build</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <dockerHost>http://192.168.65.131:2375</dockerHost>
                        <imageName>zsj/${project.artifactId}</imageName>
                        <imageTags>
                            <imageTag>${project.version}</imageTag>
                        </imageTags>
                        <forceTags>true</forceTags>
                        <dockerDirectory>${project.basedir}</dockerDirectory>
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <directory>${project.build.directory}</directory>
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                    </configuration>
                </plugin>
  • 工程根目录新增Dockerfile:

    FROM openjdk:8-jdk-alpine
    ARG JAR_FILE=target/*.jar
    COPY ${JAR_FILE} app.jar
    ENTRYPOINT ["java","-jar","/app.jar"]
  • 运行maven的package任务:

    image-20230502212207557
    image-20230502212207557

成功后可在控制台看到如下输出:

image-20230502212246029
image-20230502212246029
  • 登录docker所在服务器,查看镜像是否打包上传成功:

    image-20230502212343565
    image-20230502212343565

分类:

后端

标签:

后端

作者介绍

w
wish611
V1