Git拉取項目 Docker部署SpringCloud

**

圖片請看我的博客

**

從0開始,使用dockerfile將項目打包上傳到服務器

以開源項目若依Cloud爲例子

項目地址:https://github.com/zhangmrit/ruoyi-cloud

docker安裝以及遠程訪問配置

1.安裝依賴包:

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2.安裝Docker-CE

$ sudo yum install docker-ce

3.配置docker遠程訪問

$ vim /usr/lib/systemd/system/docker.service

4.找到下面這一行:
{% qnimg Git拉取項目-Docker部署SpringCloud/5.png %}

修改爲:

# 如果有不一樣的,直接在 /usr/bin/dockerd 後面加上即可
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

5.重新讀取配置文件

$ systemctl daemon-reload

6.啓動docker服務

# 重啓docker
$ systemctl restart docker

# 開機啓動
$ sudo systemctl enable docker 

# 啓動docker
$ sudo systemctl start docker

測試訪問 http://ip-address:2375/version 如果有數據則配置成功

docker-compse安裝

依次執行:

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version

clone項目

clone項目到本地或使用IDEA直接拉取:

$ git clone https://github.com/zhangmrit/ruoyi-cloud.git

請閱讀README,其中說明了啓動順序:

  • eureka
  • config
  • gateway
  • system
  • auth

就以前3個爲例子,後面的依瓢畫葫蘆即可

修改yml

其他模塊請修改Eureka的地址:

server:
  port: 7001

eureka:
  instance:
    hostname: chongma-eureka #eureka服務端的實例名稱
  client:
    register-with-eureka: false     #false表示不向註冊中心註冊自己。
    fetch-registry: false     #false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要去檢索服務
    service-url:
      #單機
      #設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址(單機)。
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      #defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

pom文件增加plugin

在需要啓動的模塊裏添加

       <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.14</version>
                <configuration>
                    <!-- 鏡像名稱 -->
                    <imageName>${project.artifactId}</imageName>
                    <!-- Dockerfile文件所在目錄 -->
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <!-- docker所在宿主機ip 2375爲docker開啓的遠程訪問端口 -->
                    <dockerHost>http://ip-address:2375</dockerHost>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

dockerfile

如下圖,新建文件夾docker並創建Dockerfile文件

**

圖片請看我的博客

**

文件內容:

# 基於哪個鏡像
FROM java:8
# 將本地文件夾掛載到當前容器
VOLUME /tmp
# 拷貝文件到容器,chongma-eureka-1.0.1-SNAPSHOT.jar這裏是maven打包後的名字
ADD chongma-eureka-1.0.1-SNAPSHOT.jar chongma-eureka.jar
RUN bash -c 'touch /chongma-eureka.jar'
# 配置容器啓動後執行的命令
ENTRYPOINT  ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/chongma-eureka.jar"]

其他的文件照着修改打包名即可

maven打包

首先在IDEA右側欄點開Maven,選中ruoyi-cloud(root),執行install

然後新建maven命令:

clean package docker:build -DskipTests

**

圖片請看我的博客

**

依次創建好3個模塊的maven,最後執行

遠程連接服務器,執行

$ docker images

**

圖片請看我的博客

**

編寫docker-compose

任意目錄執行:

$ vim docker-compose.yml

其他模塊的照着寫即可:

version: '3'
services:
  eureka-server:              #自定義服務名--註冊中心
    restart: on-failure
    image: chongma-eureka         #鏡像名稱
    ports:
      - "7001:7001"            #映射的端口
    environment:               #環境變量
      SERVER_PORT: "7001"      #自定義參數用於給服務的配置文件傳遞參數

  config:                      #自定義服務名--配置中心
    image: chongma-config      #鏡像名稱  
    ports:
      - "8888:8888"            #映射的端口
    environment:               #環境變量配置
      REGISTER_URL: "http://ip-address:7001/eureka/" 
      SERVER_PORT: "8888"

  gateway:                      #自定義服務名
    image: chongma-gateway      #鏡像名稱  
    ports:
      - "9527:9527"            #映射的端口
    environment:               #環境變量配置
      REGISTER_URL: "http://ip-address:7001/eureka/" 
      SERVER_PORT: "9527"

保存,執行命令:

$ docker-compose -f docker-compose.yml up -d

其他命令:

停止docker-compose(停止項目):

$ docker-compose -f docker-compose.yml down

查看運行的容器日誌:

$ docker logs -f -t --tail 行數 容器名

遺留問題(待解決)

1.服務器已有的項目鏡像,再次執行maven打包,會出現如下問題:

**

圖片請看我的博客

**

2.config配置中心用的是search-locations,雖然config註冊到了Eureka

但是裏面的數據庫、redis連接都沒有讀取到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章