背景
intellij idea作为内存消耗大户,在开发微服务项目时,同时开启多个相关服务,存在单机内存不够用的情况。结合当前主流的虚拟化docker发布,单台电脑的性能问题。直接远程运行docker的开发场景。
配置
- IntelliJ IDEA 2019.1.3
- 部署docker环境的电脑(需要远程的)
- IntelliJ IDEA Docker插件
安装
配置docker服务
vi /lib/systemd/system/docker.service
#在 ExecStart 开头的这一行末尾添加 -H tcp://0.0.0.0:2375
systemctl daemon-reload && systemctl restart docker
firewall-cmd --zone=public --add-port=2375/tcp --permanent
http://ip地址:2375/version
安装Idea Docker插件并配置
- 安装
- 配置
2375:远程docker开放的端口,上面已配置
配置程序
配置pom
在需要运行的程序对应的pom,新增以下代码,
<properties>
<docker.image.prefix>docker-demo</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>XXX</mainClass>
</configuration>
</plugin>
<!-- 直连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}/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="docker/target" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
配置 Dockerfile
创建src同级docker目录,在该目录中创建Dockerfile文件,没有后缀
FROM openjdk:8-jre
#项目的打包后的名字== 程序根目录target/下的jar名称
COPY /target/[项目的打包后的名字].jar [复制到docke环境的名字].jar
# 对外暴漏的端口号
EXPOSE 20004
ENTRYPOINT ["java","-jar","[复制到docke环境的名字].jar"]
配置Configurations
- 点击配置
- 新建Dockerfile
- 详细配置
- 配置maven
clean package install
运行
- 创建镜像运行–点击三角形
- 直接运行镜像