IntelliJ_IDEA部署SpringBoot项目到Docker容器

一、安装Docker

Docker的安装请参考 https://blog.csdn.net/kevinyankai/article/details/80227364,具体步骤这里就略过

我的系统是CentOS 7,安装了宝塔7.0.2。

  • Docker版本

  • 查看下Docker的宿主机IP地址

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第1张图片

  •  开启Docker的远程访问

执行如下命令:

sudo vi /lib/systemd/system/docker.service

修改以ExecStart开头的内容如下图红框内所示 

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第2张图片

这里我将端口号设置为2375。然后重启docker服务 :

systemctl daemon-reload
service docker restart

在宝塔安全设置中开启2375端口

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第3张图片

然后测试是否可以连接到docker api

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第4张图片

如果是在CentOS 7下远程连接有问题,可以尝试如下配置:

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

 二、IntelliJ IDEA中安装Docker integration插件

我的IDEA版本为2019.2

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第5张图片

  • 安装插件

在IDEA中打开File -> Settings...菜单,在插件市场中搜索Docker插件,并安装

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第6张图片

  •  配置连接Docker服务端

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第7张图片

其中Engine API URL处的地址为Docker服务端的IP地址,也就是前面执行ifconfig时显示的IP地址。

连接成功,如下所示

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第8张图片

三、项目配置

  •  创建Dockerfile

在项目的bin目录下创建docker目录,并创建Dockerfile文件,内容如下:

FROM frolvlad/alpine-java:jdk8-slim
#FROM frolvlad/alpine-oraclejdk8-slim
MAINTAINER [email protected]
ENV TZ "Asia/Shanghai"
ENV LANG C.UTF-8
VOLUME /tmp

WORKDIR /app
ADD target/web.war .
RUN jar -xvf web.war
# RUN chmod -R 755 ./*

ADD bin/docker/application-prod.yml ./classes/config

ENV JAVA_OPTS "-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"
ENV JAVA_OPTS "$JAVA_OPTS -Dspring.profiles.active=prod"

ENTRYPOINT java -cp /app $JAVA_OPTS org.springframework.boot.loader.WarLauncher

EXPOSE 8980

在项目bin目录下创建applicatoin-prod.yml SpringBoot项目配置文件,具体内容根据项目不同自行设置,如配置实际的数据库地址等。

  • 创建运行/调试的配置项

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第9张图片

 IntelliJ_IDEA部署SpringBoot项目到Docker容器_第10张图片

具体配置内容如下:

         Server:  选择前面配置的Docker服务端连接

         Dockerfile: Dockerfile文件所在位置

         Context folder:  执行Dockerfile文件时的上下文环境。这个路径一定要注意,写错了会导致执行Dockerfile错误,比如会找不到要拷贝的文件等

         Image tag:  发布到服务端后镜像的标签,可随便填写

         Container name: 发布后运行时docker容器的名字

         Bind ports: 运行时绑定的端口号

四、发布并运行项目

  • 编译项目

Build项目,在target目录下生成web.war包

  • 连接docker服务端

前面的docker服务器配置成功后,在service视图中即可看到服务端列表,选择要启动的docker服务端,点击绿色箭头启动

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第11张图片

启动成功后即可看见服务端的所有镜像和容器

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第12张图片

  • 执行Dockerfile,发布并运行项目

执行Docker启动/调试配置项,开始执行Dockerfile,创建镜像,容器并运行容器

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第13张图片

启动成功后如下图所示:

IntelliJ_IDEA部署SpringBoot项目到Docker容器_第14张图片

你可能感兴趣的:(Spring,IntelliJ,IDEA,Docker)