IDEA部署Docker项目

准备工作

需要安装好 Docker,Windows 和 Linux 都行,开启远程连接即可,开启的方式不同系统各不相同,网上百度即可

IDEA 安装 Docker 插件,最新的貌似自带安装有,添加 Docker 的远程连接:

在 File –> Settings –> Build, Execution, Deployment –> Docker 中添加连接路径:

image-20220326152437425

连接好之后,可以看到 Docker 镜像和容器:

image-20220326152848130

创建项目

创建一个 SpringBoot 项目,随便写一个接口,然后在项目中添加 Dockerfile 文件

image-20220326153053725

Dockerfile 文件内容如下:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

接着在 POM 文件中添加相应的配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.0.0</version>
            <configuration>
                <dockerDirectory>src/docker</dockerDirectory>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <!--绑定mvn package命令,当执行package这个maven命令打包项目的同时
    			会把target目录下的jar包给copy到docker目录去 todir根据你dockerfile文件的实际路径填写-->
            <executions>
                <execution>
                    <phase>package</phase>
                    <configuration>
                        <target>
                            <copy todir="src/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

然后添加一个 Docker 的启动项,并对其进行配置:

image-20220326153445842
1.Name:这个根据自己的项目进行命名
2.Server:这个就是远程的服务器上的docker
3.Dockerfile:这个就是自己项目的Dockerfile文件
4.Image Tag:不能重复根据自己项目来定义
5.Container name:创建你自己生成容器的名字
6.Bindports:绑定服务器对外提供的端口和自己项目的端口(阿里云的端口需要在后台自行管理打开)
  格式为[宿主机端口]:[容器内部端口]

然后 Maven 执行 Packer 指令,执行完成后,在你的 Dcokerfile 文件目录下,会有一个 jar 包,就是你打包好的,接着运行 Docker 启动项:

image-20220326154039085 image-20220326154210973

看到 success 表示我们成功了,我们就可以访问我们的网页了。

image-20220326154241872

参考

文章1:https://blog.csdn.net/weixin_42687829/article/details/104249583

文章2:https://blog.csdn.net/ZouChengli/article/details/106616879

本文连接:https://gitee.com/L-sama/docker_demo