微服務部署-基於DockerMaven外掛構建映象部署

菜鳥傳說發表於2020-12-01

基於DockerMaven外掛構建映象部署

  • 這是手動部署的升級版,全部配置好之後,只需要在idea上執行一下指定即可,自動上傳到docker倉庫,自動生成映象,要注意需要在同一閘道器內,執行命令前需要手動修改一下配置檔案對應的ip為服務名
  1. 修改宿主機的docker配置,讓其可以允許遠端訪問
    # 找到一下行進行修改
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
    
  2. 重新整理配置,重啟服務(配置倉庫)
    ## 1 如果沒有搭建則建立並啟動容器 
    docker run -id --name=registry -p 5000:5000 registry
    ## 2 配置私有倉庫地址
    vi /etc/docker/daemon.json
    {
     "registry-mirrors": ["https://pasw6qxp.mirror.aliyuncs.com"],
     "insecure-registries": ["192.168.154.129:5000"]
    }
    ## 3 重啟docker
    systemctl daemon-reload
    systemctl restart docker
    docker start registry boot_eureka
    
  3. 配置各服務的maven模板
    <build>
     <!--修改app.jar-->
     <finalName>app</finalName>
     <plugins>
       <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <!--<version>1.5.9.RELEASE</version>-->
       </plugin>
       <!-- docker的maven外掛,官網:https://github.com/spotify/docker-maven-plugin -->
       <plugin>
         <groupId>com.spotify</groupId>
         <artifactId>docker-maven-plugin</artifactId>
         <version>1.2.2</version>
         <configuration>
           <!--映象的名稱 跳過上傳到私有倉庫-->
           <imageName>${project.artifactId}:${project.version}</imageName>
           <!--上傳到私有倉庫-->
           <!--<imageName>192.168.154.129:5000/${project.artifactId}:${project.version}</imageName>-->
           <!--依賴一個基礎映象 帶JDK 1.8-->
           <baseImage>java:8-alpine</baseImage>
           <!--java -jar app.jar -->
           <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
           <resources>
             <resource>
               <targetPath>/</targetPath>
               <directory>${project.build.directory}</directory>
               <include>${project.build.finalName}.jar</include>
             </resource>
           </resources>
           <dockerHost>http://192.168.154.129:2375</dockerHost>
         </configuration>
       </plugin>
     </plugins>
    </build>
    
  4. 修改配置檔案中的ip埠,如果是遠端配置服務的也需要修改下
    server:
      port: 12580
    spring:
      application:
        name: config-server
      cloud:
        config:
          server:
            git:
              uri: https://gitee.com/dlw/config-test.git # 需要拉取配置的Git倉庫地址
    #          username:
    #          password:
      rabbitmq:
    #    host: 192.168.154.129
        host: rabbitmq # 打包時修改
        username: guest
        password: guest
        virtual-host: /
    
    eureka:
      client:
        service-url:
    #      defaultZone: http://127.0.0.1:10086/eureka/ # eureka地址
          defaultZone: http://eureka:10086/eureka/ # 打包時修改
    
    management:
      endpoints:
        web:
          exposure:
            include: bus-refresh
    
    
  5. 在idea中執行maven命令
    # 打包並且將映象上傳到私有註冊中心中
    mvn clean package docker:build -DpushImage
    # 跳過上傳
    mvn clean package docker:build -DskipDockerPush
    
  6. 檢視倉庫
    http://192.168.154.129:5000/v2/_catalog
    
  7. 將docke容器放到同一閘道器內
    # 已啟動的
    docker network connect my-net eureka
    
    # 未啟動
    docker run -id --name=config_server --network my-net -p [宿主埠]:[容器埠] [映象ID|映象名稱:tag]
    
  8. 驗證,進入eureka中心檢視服務是否註冊成功

相關文章