Intellij IDEA 集成 Docker 发布

简介: Intellij IDEA 集成 Docker 发布

1. Docker开启远程访问,注意端口不要用默认的,防止被攻击

[root@localhost ~]# vi /usr/lib/systemd/system/docker.service

修改

# 修改该行-注意端口不要用默认的 2375
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2370

 

开放端口:

#防火墙开放端口
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=2370/tcp
[root@localhost ~]# firewall-cmd --reload

 

#重新加载配置文件
[root@localhost ~]# systemctl daemon-reload    
#重启服务
[root@localhost ~]# systemctl restart docker.service 
#查看端口是否开启
[root@localhost ~]# netstat -nlpt
#直接curl看是否生效
[root@localhost ~]# curl http://127.0.0.1:2370/info

IntelliJ IDEA安装Docker插件

 

 

 

Spring Boot服务docker部署

<properties>
    <docker.image.prefix>vipsoft</docker.image.prefix>
</properties>
<build>
      <plugins>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
          <!-- Docker maven plugin -->
          <plugin>
              <groupId>com.spotify</groupId>
              <artifactId>docker-maven-plugin</artifactId>
              <version>1.2.0</version>
              <configuration>
                  <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                  <dockerDirectory></dockerDirectory>
                  <resources>
                      <resource>
                          <targetPath>/</targetPath>
                          <directory>${project.build.directory}</directory>
                          <include>${project.build.finalName}.jar</include>
                      </resource>
                  </resources>
              </configuration>
          </plugin>
          <!-- Docker maven plugin -->
      </plugins>
  </build>

创建 Dockerfile

 

# Docker image for SpringBoot file run
# VERSION 0.0.1
# Author: Jimmy
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER Jimmy <Jimmy.Chen@thothcloud.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD target/vipsoft-demo-1.0.0.jar  app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
#修改Docker时区-否则里面的时间会慢8小时
ENV TZ=Asia/Shanghai
#通过文件链接的方式修改 时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV SPRING_PROFILES_ACTIVE=""
#这种写法不支持 Skywalking 
#ENTRYPOINT ["java","-Dspring.profiles.active=$SPRING_PROFILES_ACTIVE","-jar","app.jar"]
ENTRYPOINT [ "sh", "-c", "java -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE -jar /app.jar" ]
#放 linux 上编译
#docker build -t vipsoft-demo:1.0.0 .
#docker run --name vipsoft-demo-9091 --restart always \
#     -d -p 9091:9099 \
#     -e SPRING_PROFILES_ACTIVE=dev \
#     -v /opt/logs/vipsoft-demo/:/logs/ \
#     vipsoft-demo:1.0.0
 SPRING_PROFILES_ACTIVE=dev  不能写成  SPRING_PROFILES_ACTIVE="dev" 
 加了双引号,命令行可以运行,但IDEA集成时不能运行

 

创建docker镜像

 

 

 

Environment variables 参数的值不能带“”双引号

命令解释:

Image tag:指定镜像名称和tag,镜像名称为docker-demo,tag为1.1

Bind ports:绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]

Bind mounts:将宿主机目录挂到到容器内部目录中。格式为[宿主机目录]:[容器内部目录]。这个Spring Boot项目会将日志打印在容器/home/developer/app/logs/目录下,将宿主机目录挂载到容器内部目录后,那么日志就会持久化容器外部的宿主机目录中。

 

 

Connect 后,可以查看容器的运行情况

 

ENTRYPOINT [ "sh", "-c", "java -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE -jar /app.jar" ]

目录
相关文章
|
2月前
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
294 3
|
4月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
4月前
|
Kubernetes Devops 持续交付
DevOps实践:使用Docker和Kubernetes实现持续集成和部署网络安全的守护盾:加密技术与安全意识的重要性
【8月更文挑战第27天】本文将引导读者理解并应用DevOps的核心理念,通过Docker和Kubernetes的实战案例,深入探讨如何在现代软件开发中实现自动化的持续集成和部署。文章不仅提供理论知识,还结合真实示例,旨在帮助开发者提升效率,优化工作流程。
|
6月前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
212 1
|
2月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
37 0
|
3月前
|
Shell 网络安全 开发工具
Git,GitHub,Gitee&IDEA集成Git
Git提交项目到GitHub简洁版、版本控制、安装、常用命令、分支、团队协作机制、Github、Gitee远程仓库、IDEA集成Git、IDEA集成Github、IDEA集成Gitee
Git,GitHub,Gitee&IDEA集成Git
|
4月前
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
113 2
【前端学java】全网最详细的maven安装与IDEA集成教程!
|
5月前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
|
4月前
|
Docker 容器
SrpingBoot 集成 xxl-job 部署在 Docker 上碰到的坑
SrpingBoot 集成 xxl-job 部署在 Docker 上碰到的坑
124 0
|
6月前
|
XML Java 应用服务中间件
Tomcat项目创建 以及 在IDEA当中集成Tomcat
Tomcat项目创建 以及 在IDEA当中集成Tomcat

热门文章

最新文章

下一篇
DataWorks