• 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" ]
  • 相关阅读:
    关于Web服务器时间修改后遗症
    C# MVC Api无法获得参数
    C# MVC 全局错误Application_Error中处理(包括Ajax请求)
    C# MVC 中自定义权限特性[Authorize]中对于Ajax访问的处理
    ClosedXML、DocumentFormat.OpenXml导出DataTable到Excel
    Visual Studio 2017中使用gulp编译sass/scss
    VSCode 常用技巧总结
    Chrome 和 IE 在box-sizing 设置不同的值的表现
    c# 结构体
    c# DefualtValue 常见问题
  • 原文地址:https://www.cnblogs.com/vipsoft/p/15986374.html
Copyright © 2020-2023  润新知