方法1:使用Jenkins構建Docker鏡像 --SpringCloud


前提意義:
SpringCloud微服務里包含多個文件夾,拉取倉庫的所有代碼,然后過根據選項參數使用maven編譯打包指定目錄的jar,然后再根據這個目錄的Dockerfile文件制作Docker鏡像

采用這種結構,代碼不用做任何修改。

大致步驟流程是:
開發人員提交代碼到Gogs倉庫,觸發webhooks鈎子,然后Jenkins自動執行任務( 這一步可以刪除鈎子,手動進行操作),從整個Gogs倉庫拉取代碼,但是只編譯打包其中的一個文件夾項目,生成jar包,然后根據文件夾項目根目錄下的Dockfile文件使用遠程Docker(其實就是本機安裝的docker)制作鏡像。

1. SpringCloud項目結構

注意Dockerfile文件的位置,跟src和pom.xml同級,后面會用到這個文件,若不同級,后面選擇Dockerfile文件的時候需要酌情修改,就是使用環境變量的那幾個地方

Dockerfile文件內容

FROM java:8
MAINTAINER sandu <1103324414@qq.com>
VOLUME /tmp
ADD target/spring-cloud-eureka-server-demo-1.0-SNAPSHOT.jar /eureka-server-demo.jar
ENTRYPOINT ["java","-Xmx200m","-Xms200m","-Djava.security.egd=file:/dev/./urandom","-jar","/eureka-server-demo.jar"]
EXPOSE 9011

Git倉庫是整個項目,但是根據選項參數只編譯打包spring-cloud-eureka-server-demo文件夾

2. Docker配置

開啟遠程訪問:

vim /lib/systemd/system/docker.service
# 添加下面這行
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

systemctl daemon-reload
systemctl restart docker 

配置國內163源:

vim /etc/docker/daemon.json
{
   "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

3. Jenkins配置

安裝docker插件
系統管理---系統設置---雲,添加docker配置信息,具體如下圖:

4. 工程中的設置

構建,一定要選擇生成jar包之后的操作,詳看截圖:

5. 查看生成的docker鏡像並運行


[root@bogon ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
eureka-server       latest              846ceb0bc1fc        57 seconds ago      686MB
java                8                   d23bdf5b1b1b        2 years ago         643MB

[root@bogon ~]# docker run -p 9011:9011 -d  eureka-server:latest
0b2e245e29149787b79681c17b36ea6f4c45ba69bdcb580dca6a8f83282ef2e5

[root@bogon ~]# docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
0b2e245e2914        eureka-server:latest   "java -Xmx200m -Xms2…"   6 seconds ago       Up 4 seconds        0.0.0.0:9011->9011/tcp   mystifying_driscoll

6. 驗證

使用瀏覽器訪問: http://本機ip:9011


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM