使用idea部署项目到远程docker

时间:2022-10-08 22:52:51

        之前在公司都是自动打包部署到远程docker上,也没有考虑过怎么搞的,今天在公司内网docker 上测试,跟同事学习了下,记录一下分享,day day up  !!!!!, 开始吧。

1、安装docker插件

这步我不记得有没有安装,因为我使用的是商业版,可以看下你是不是安装了

        打开setting-->plugins-->搜索docker-->点击install

使用idea部署项目到远程docker

 这个插件是可视化的管理docker 

pom中增加下面的配置

<build>
        <finalName>ccp-data-SNAPSHOT</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <mainClass>com.tyjt.ccpdata.CcpDataApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

2、docker 开启远程访问

因为要在远程管理docker,所以需要打开远程访问权限,

修改docker.service

配置地址: /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
这里开启远程端口为2375

3、idea中配置docker 连接

想要管理远程的docker 的服务器,file->setting->build -> Docker ,增加一个配置,

name 随便起,最主要的是TCP 连接属性 

填写完成之后会有提示连接成功,这个时候你已经可以管理远程的docker了

使用idea部署项目到远程docker

 在控制台 service窗口可以看到远程的信息了

使用idea部署项目到远程docker

 docker-compose 是docker-compose启动的服务

containers 是docker 上正在运行的服务

Images 是docker上有的机器

Networks 是每个服务的网络

Volumes 是每个服务的挂载

4、部署本地项目到docker

4.1 创建dockerfile

创建一个springboot项目,在项目中创建dockerfile

# 基础镜像
FROM tyjt-java11-agent:latest
# 默认工作空间
VOLUME /tmp
WORKDIR /opt/tyjt
# 复制为ccp-data-0.0.1-SNAPSHOT.jar
ADD target/ccp-data-SNAPSHOT.jar /opt/tyjt/ccp-data-SNAPSHOT.jar
ADD run.sh /opt/tyjt/run.sh
# RUN bash -c 'touch /ccp-data-SNAPSHOT.jar'
# 时钟
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#port
EXPOSE 10801
#执行
ENTRYPOINT ["bash","/opt/tyjt/run.sh"]

     执行的脚本如下

#/bin/bash
PROFILE=$ENV
java -jar /opt/tyjt/ccp-data-SNAPSHOT.jar

4.2 创建docker 配置

通过edit-configration,添加一个docker的运行配置

点击modify 可以做端口映射,相当于docker run中的p命令

使用idea部署项目到远程docker

 这里在运行之前做了一个maven的打包工作

clean package -U -DskipTests

使用idea部署项目到远程docker

 4.3 运行起来看看效果

点击运行可以看到下面的日志,同时也能看到项目的启动日志

使用idea部署项目到远程docker

 可以登录到docker 所在机器看下运行的容器

已经部署上去了

注意: 如果部署不上去,提示Failed to deploy,可能是因为权限不够,使用管理员权限打开idea

5、总结

这只是一个工具的使用,虽然很方便,但是在我们日常的开发中很少这么用,因为我们都是CI 一键部署,几乎不使用这种方式