1. 提升10倍生產(chǎn)力:IDEA遠程一鍵部署SpringBoot到Docker

        共 3093字,需瀏覽 7分鐘

         ·

        2020-10-11 03:11

        粉絲福利1:我寫了10 萬字 Spring Boot 詳細學習筆記(帶完整目錄)+源碼,分享給大家

        粉絲福利2:教妹子手擼了50個項目實戰(zhàn)后,我超神了……

        IDEA是Java開發(fā)利器,springboot是Java生態(tài)中最流行的微服務框架,docker是時下最火的容器技術,那么它們結合在一起會產(chǎn)生什么化學反應呢?

        一、開發(fā)前準備

        1.Docker安裝

        可以參考:

        https://docs.docker.com/install/

        2.配置docker遠程連接端口

        ??vi?/usr/lib/systemd/system/docker.service

        找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下圖所示

        c260fe40c71be0fa061a50dc1804a698.webp

        3.重啟docker

        ?systemctl?daemon-reload
        ?systemctl?start?docker

        4.開放端口

        firewall-cmd?--zone=public?--add-port=2375/tcp?--permanent??

        5.Idea安裝插件,重啟

        8ee3eb1513601c4628a0656f61604aa0.webp

        6.連接遠程docker

        1、編輯配置

        47f4012a005a0ded709fa90d42231a1a.webp

        2、填遠程docker地址

        8729ad4cbcf24d3d429c51f13fa52953.webp

        3、連接成功,會列出遠程docker容器和鏡像

        166b7ada268f906081b4fc8fb9d2adf3.webp

        二、新建項目

        1.創(chuàng)建springboot項目

        項目結構圖

        d16e04b4ee62fd5b05f3d4fe190b8082.webp

        1、配置pom文件


        <project?xmlns="http://maven.apache.org/POM/4.0.0"
        ?????????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        ?????????xsi:schemaLocation="http://maven.apache.org/POM/4.0.0?http://maven.apache.org/xsd/maven-4.0.0.xsd">

        ????<modelVersion>4.0.0modelVersion>

        ????<groupId>docker-demogroupId>
        ????<artifactId>com.demoartifactId>
        ????<version>1.0-SNAPSHOTversion>
        ????<parent>
        ????????<groupId>org.springframework.bootgroupId>
        ????????<artifactId>spring-boot-starter-parentartifactId>
        ????????<version>2.0.2.RELEASEversion>
        ????????<relativePath?/>
        ????parent>

        ????<properties>
        ?????????<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        ?????????<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        ?????????<docker.image.prefix>com.demodocker.image.prefix>
        ?????????<java.version>1.8java.version>
        ????properties>
        ????<build>
        ????????<plugins>
        ??????????<plugin>
        ????????????<groupId>org.springframework.bootgroupId>
        ????????????<artifactId>spring-boot-maven-pluginartifactId>
        ??????????plugin>
        ????????<plugin>
        ???????????<groupId>com.spotifygroupId>
        ???????????<artifactId>docker-maven-pluginartifactId>
        ???????????<version>1.0.0version>
        ???????????<configuration>
        ??????????????<dockerDirectory>src/main/dockerdockerDirectory>
        ??????????????<resources>
        ????????????????<resource>
        ????????????????????<targetPath>/targetPath>
        ????????????????????<directory>${project.build.directory}directory>
        ????????????????????<include>${project.build.finalName}.jarinclude>
        ????????????????resource>
        ??????????????resources>
        ???????????configuration>
        ????????plugin>
        ????????<plugin>
        ????????????<artifactId>maven-antrun-pluginartifactId>
        ????????????<executions>
        ?????????????????<execution>
        ?????????????????????<phase>packagephase>
        ????????????????????<configuration>
        ????????????????????????<tasks>
        ????????????????????????????<copy?todir="src/main/docker"?file="target/${project.artifactId}-${project.version}.${project.packaging}">copy>
        ????????????????????????tasks>
        ?????????????????????configuration>
        ????????????????????<goals>
        ????????????????????????<goal>rungoal>
        ????????????????????goals>
        ????????????????????execution>
        ????????????executions>
        ????????plugin>

        ???????plugins>
        ????build>
        <dependencies>
        ????<dependency>
        ????????<groupId>org.springframework.bootgroupId>
        ????????<artifactId>spring-boot-starter-webartifactId>
        ????dependency>
        ????<dependency>
        ??<groupId>org.springframework.bootgroupId>
        ????????<artifactId>spring-boot-starter-testartifactId>
        ????????<scope>testscope>
        ????dependency>
        ????<dependency>
        ????????<groupId>log4jgroupId>
        ????????<artifactId>log4jartifactId>
        ????????<version>1.2.17version>
        ????dependency>
        dependencies>
        project>

        2、在src/main目錄下創(chuàng)建docker目錄,并創(chuàng)建Dockerfile文件

        FROM?openjdk:8-jdk-alpine
        ADD?*.jar?app.jar
        ENTRYPOINT?["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

        3、在resource目錄下創(chuàng)建application.properties文件

        logging.config=classpath:logback.xml
        logging.path=/home/developer/app/logs/
        server.port=8990

        4、創(chuàng)建DockerApplication文件

        @SpringBootApplication
        public?class?DockerApplication?{
        ????public?static?void?main(String[]?args)?{
        ????????SpringApplication.run(DockerApplication.class,?args);
        ????}
        }

        5、創(chuàng)建DockerController文件

        @RestController
        public?class?DockerController?{
        ????static?Log?log?=?LogFactory.getLog(DockerController.class);

        ????@RequestMapping("/")
        ????public?String?index()?{
        ????????log.info("Hello?Docker!");
        ????????return?"Hello?Docker!";
        ????}
        }

        6、增加配置

        8b0f3e4e71378b197c79f04550b10aa3.webp

        144c069635c96ada451035cc3075e00e.webp

        dd0affb16d1cee6171fb1ee360d0dc8e.webp

        命令解釋:

        • Image tag : 指定鏡像名稱和tag,鏡像名稱為 docker-demo,tag為1.1

        • Bind ports : 綁定宿主機端口到容器內(nèi)部端口。格式為[宿主機端口]:[容器內(nèi)部端口]

        • Bind mounts : 將宿主機目錄掛到到容器內(nèi)部目錄中。
          格式為[宿主機目錄]:[容器內(nèi)部目錄]。這個springboot項目會將日志打印在容器 /home/developer/app/logs/ 目錄下,將宿主機目錄掛載到容器內(nèi)部目錄后,那么日志就會持久化容器外部的宿主機目錄中。

        7、Maven打包

        b8e49e8b8980661de1090d0d2e1f75c8.webp

        8、運行

        33bcff6b11e18e556e918779513d1edb.webp

        8af4c1ef8ac8eabdc61b3364b04393b1.webp

        先pull基礎鏡像,然后再打包鏡像,并將鏡像部署到遠程docker運行

        14931ebdce4c4c90312a2b941a474f62.webp

        這里我們可以看到鏡像名稱為docker-demo:1.1,docker容器為docker-server

        9、運行成功

        5487c2c128fd800f81266c9a034defa6.webp

        10、瀏覽器訪問

        5729ce3b3805a69c8f83e9a54d383b99.webp

        11、日志查看

        d6abb06b2a192ee573a4fbf870f19769.webp

        自此,通過IDEA 部署springboot項目到docker成功!難以想象,部署一個Javaweb項目竟然如此簡單方便!

        來源:juejin.im/post/5d026212f265da1b8608828b

        最后免費給大家分享50個Java項目實戰(zhàn)資料,涵蓋入門、進階各個階段學習內(nèi)容,可以說非常全面了。大部分視頻還附帶源碼,學起來還不費勁!


        附上截圖。(下面有下載方式)。

        fcfb5724e2468b897ae3ef7063195a63.webp

        7a6ce413ac6b36a78bbcc2fc585559d6.webp

        fecd6f0d6b32cd08bb0ca4c3d3ae28b2.webp

        a9ea3a9adad27b99fbbe93bc8adf8c97.webp

        50cba60d95cfb0e7eed3f510a89eb88d.webp


        項目領取方式:

        掃描下方公眾號回復:50,

        可獲取下載鏈接

        ???

        ?長按上方二維碼?2 秒回復「50」即可獲取資料

        點贊是最大的支持?71b865750e0b94a92d8ae9424cebe87c.webp

        瀏覽 65
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 岳的乱系列18部分部分 | 韩国午夜久久久精品影院 | 波多野结衣伦理 | 日日夜精品视频 | 91色视 |