java基礎-day67-Docker02

七募谎、Docker應用


7.1 Docker安裝Tomcat

運行Tomcat容器拐纱,為部署SSM工程做準備

# 運行Tomcat容器
[root@localhost ~]# docker run -d -p 8080:8080 --name mytomcat b8dfe9ade316

7.2 Docker安裝MySQL

運行MySQL容器蚂子,為部署SSM工程做準備

# 拉取MySql鏡像
[root@localhost ~]# docker pull daocloud.io/library/mysql:5.7.4

# 運行MySql容器
[root@localhost ~]# docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root daocloud.io/library/mysql:5.7.4

7.3 部署SSM工程

  • 修改SSM工程環(huán)境试浙,設置為Linux中Docker容器的信息
  • 通過Maven的package重新打成war包
  • 將Windows下的war包復制到Linux中
  • 通過docker命令將宿主機的war包復制到容器內(nèi)部
  • 測試訪問SSM工程

八、數(shù)據(jù)卷【重點


為了部署SSM的工程截珍,需要使用到cp的命令將宿主機內(nèi)的ssm.war文件復制到容器內(nèi)部钱床。

數(shù)據(jù)卷:將宿主機的一個目錄映射到容器的一個目錄中纸颜。

可以在宿主機中操作目錄中的內(nèi)容,那么容器內(nèi)部映射的文件法希,也會跟著一起改變屋剑。

8.1 創(chuàng)建數(shù)據(jù)卷

創(chuàng)建數(shù)據(jù)卷之后,默認會存放在一個目錄下 /var/lib/docker/volumes/數(shù)據(jù)卷名稱/_data

docker volume create 數(shù)據(jù)卷名稱

#創(chuàng)建一個名為tomcat的數(shù)據(jù)卷
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume create tomcat
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /var/lib/docker/volumes

8.2 查看數(shù)據(jù)卷詳情

查看數(shù)據(jù)卷的詳細信息璃饱,可以查詢到存放路徑谒撼,創(chuàng)建時間等等

docker volume inspect 數(shù)據(jù)卷名稱

[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume inspect tomcat

8.3 查看全部數(shù)據(jù)卷

查看全部數(shù)據(jù)卷信息

docker volume ls

[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume ls

8.4 刪除數(shù)據(jù)卷

刪除指定數(shù)據(jù)卷

docker volume rm 數(shù)據(jù)卷名稱

[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume rm tomcat

8.5 容器映射數(shù)據(jù)卷

映射有兩種方式:

  • 第一種:通過數(shù)據(jù)卷名稱映射,如果數(shù)據(jù)卷不存在。Docker會幫你自動創(chuàng)建,會將容器內(nèi)部自帶的文件蚁署,存儲在默認的存放路徑中久妆。
  • 第二種:通過路徑映射數(shù)據(jù)卷肋演,直接指定一個路徑作為數(shù)據(jù)卷的存放位置。但是這個路徑下是空的。
# 第一種:通過數(shù)據(jù)卷名稱映射
docker run -v 數(shù)據(jù)卷名稱:容器內(nèi)部的路徑 鏡像id

[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker volume create mytomcat_volume
[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker run -d -p 8080:8080 --name mytomcat -v mytomcat_volume:/usr/local/tomcat/webapps b8
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /var/lib/docker/volumes
[root@iz8vbdmrir2n6xqzrbd93hz volumes]# ls
3fdc377f615693578180d1e7433d30e42baa53058eb55ebf86b6c4d0ed27d87a  metadata.db mytomcat_volume
[root@iz8vbdmrir2n6xqzrbd93hz volumes]# cd mytomcat_volume/
[root@iz8vbdmrir2n6xqzrbd93hz mytomcat_volume]# ls
_data
[root@iz8vbdmrir2n6xqzrbd93hz mytomcat_volume]# cd _data/
[root@iz8vbdmrir2n6xqzrbd93hz _data]# ls
docs  examples  host-manager  manager  ROOT


# 第二種:通過路徑映射數(shù)據(jù)卷
docker run -v 路徑:容器內(nèi)部的路徑 鏡像id

[root@iz8vbdmrir2n6xqzrbd93hz ~]# docker run -d -p 8080:8080 --name mytomcat -v /opt/yangl:/usr/local/tomcat/webapps b8
f70074ae145572c85c00afa5be9c2abb938906238be1c958b51d02806975f8de
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd opt
-bash: cd: opt: No such file or directory
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /opt/yangl
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# ls
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# mkdir ROOT
[root@iz8vbdmrir2n6xqzrbd93hz yangl]# cd ROOT/
[root@iz8vbdmrir2n6xqzrbd93hz ROOT]# vim index.html

九惋啃、Dockerfile自定義鏡像【重點


我們可以從中央倉庫下載一個鏡像,也可以自己手動去制作一個鏡像边灭,需要通過Dockerfile去指定自定義鏡像的信息

9.1 Dockerfile

創(chuàng)建自定義鏡像就需要創(chuàng)建一個Dockerfile异希,如下為Dockerfile的語言

from: 指定當前自定義鏡像依賴的環(huán)境
copy: 將相對路徑下的內(nèi)容復制到自定義鏡像中
workdir: 聲明鏡像的默認工作目錄
run: 執(zhí)行的命令,可以編寫多個
cmd: 需要執(zhí)行的命令(在workdir下執(zhí)行的绒瘦,cmd可以寫多個称簿,只以最后一個為準)

# 制作SSM容器鏡像,video-web.war要放在Dockerfile的同級目錄下
# 右鍵創(chuàng)建文件惰帽,命名為:Dockerfile 該文件無后綴憨降,然后在文件添加如下內(nèi)容
from daocloud.io/library/tomcat:8.5.15-jre8
copy video-web.war /usr/local/tomcat/webapps

# 在root目錄下創(chuàng)建一個目錄,然后把Dockerfile文件和video-web.war都拷貝過來
[root@iz8vbdmrir2n6xqzrbd93hz ~]# mkdir myssm
[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd myssm
[root@iz8vbdmrir2n6xqzrbd93hz myssm]# ls
Dockerfile  video-web.war

9.2 通過Dockerfile制作鏡像

編寫完Dockerfile后需要通過命令將其制作為鏡像该酗,并且要在Dockerfile的當前目錄下授药,之后即可在鏡像中查看到指定的鏡像信息,注意最后的 .

docker build -t 鏡像名稱[:tag] .

[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker build -t tomcat-video:1.0 .
Sending build context to Docker daemon   18.4MB
Step 1/2 : from daocloud.io/library/tomcat:8.5.15-jre8
 ---> b8dfe9ade316
Step 2/2 : copy video-web.war /usr/local/tomcat/webapps
 ---> cb8ea4a83137
Successfully built cb8ea4a83137
Successfully tagged tomcat-video:1.0

[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
tomcat-video                 1.0                 cb8ea4a83137        About a minute ago   352MB
hello-world                  latest              bf756fb1ae65        7 months ago         13.3kB
daocloud.io/library/tomcat   8.5.15-jre8         b8dfe9ade316        3 years ago          334MB
daocloud.io/library/mysql    5.7.4               aa5364eb3d85        5 years ago          252MB

[root@iz8vbdmrir2n6xqzrbd93hz myssm]# docker run -d -p 8081:8080 --name tomcat-video-ssm cb8
c5faa261b5b01d77467ce7e3ac6a7310aac6f21aabfdc9f002b5790381f96c52


十. Docker-Compose【重點


之前運行一個鏡像呜魄,需要添加大量的參數(shù),可以通過Docker-Compose編寫這些參數(shù)悔叽。而且Docker-Compose可以幫助我們批量的管理容器。這些信息只需要通過一個docker-compose.yml文件去維護即可爵嗅。

10.1 下載并安裝Docker-Compose

10.1.1 下載Docker-Compose

去github官網(wǎng)搜索docker-compose娇澎,下載1.24.1版本的Docker-Compose

下載路徑:https://github.com/docker/compose/releases/tag/1.24.1

10.1.2 設置權(quán)限

需要將docker-compose-Linux-x86_64文件拷貝到/usr/local 目錄下,然后設置docker-compose-Linux-x86_64文件的權(quán)限

[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /usr/local
[root@iz8vbdmrir2n6xqzrbd93hz local]# ls
aegis  bin  docker-compose-Linux-x86_64  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@iz8vbdmrir2n6xqzrbd93hz local]# chmod 777 docker-compose-Linux-x86_64 

10.1.3 配置環(huán)境變量

方便后期操作睹晒,配置一個環(huán)境變量趟庄,查看之前配置jdk的環(huán)境文件

[root@iz8vbdmrir2n6xqzrbd93hz local]# vim /etc/profile
# 添加內(nèi)容:export PATH=/usr/local:$PATH
[root@iz8vbdmrir2n6xqzrbd93hz local]# source /etc/profile
# source /etc/profile加載成功后,在任意目錄下執(zhí)行:docker-compose-Linux-x86_64 會出現(xiàn)以下信息
[root@iz8vbdmrir2n6xqzrbd93hz local]# docker-compose-Linux-x86_64 
測試效果
image.png

10.2 Docker-Compose管理MySQL和Tomcat容器

yml文件以key: value方式來指定配置信息

多個配置信息以換行+縮進的方式來區(qū)分

在docker-compose.yml文件中,不要使用制表符

version: '3.1'
services:
  mysql:           # 服務的名稱
    restart: always   # 代表只要docker啟動,那么這個容器就跟著一起啟動
    image: daocloud.io/library/mysql:5.7.4  # 指定鏡像路徑
    container_name: mysql  # 指定容器名稱
    ports:
      - 3306:3306   #  指定端口號的映射
    environment:
      MYSQL_ROOT_PASSWORD: root   # 指定MySQL的ROOT用戶登錄密碼
      TZ: Asia/Shanghai        # 指定時區(qū)
    volumes:
     - /opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql   # 映射數(shù)據(jù)卷
  tomcat:
    restart: always
    image: daocloud.io/library/tomcat:8.5.15-jre8
    container_name: tomcat
    ports:
      - 8080:8080
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
      - /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs

10.3 使用docker-compose命令管理容器

在使用docker-compose的命令時 年叮,默認會在當前目錄下找docker-compose.yml文件,由于docker-compose.yml文件的volumes指定的地址是 /opt/docker_mysql_tomcat虑鼎,所以我們首先需要在opt目錄下創(chuàng)建docker_mysql_tomcat目錄,然后進入該目錄創(chuàng)建docker-compose.yml文件键痛,并粘貼以上寫好的內(nèi)容

[root@iz8vbdmrir2n6xqzrbd93hz ~]# cd /opt
[root@iz8vbdmrir2n6xqzrbd93hz opt]# ls
containerd  yangl
[root@iz8vbdmrir2n6xqzrbd93hz opt]# mkdir docker_mysql_tomcat
[root@iz8vbdmrir2n6xqzrbd93hz opt]# ls
containerd  docker_mysql_tomcat  yangl
[root@iz8vbdmrir2n6xqzrbd93hz opt]# cd docker_mysql_tomcat/
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# vim docker-compose.yml 

# 停止之前的所有的容器并刪除
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# docker stop $(docker ps -qa)
0274ca45914b
f70074ae1455
2db5a3fe0a92
425b6e8e1806
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# docker rm $(docker ps -qa)
0274ca45914b
f70074ae1455
2db5a3fe0a92
425b6e8e1806
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

# 使用docker-compose命令
# 1. 基于docker-compose.yml啟動管理的容器
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# docker-compose-Linux-x86_64 up -d
Creating network "docker_mysql_tomcat_default" with the default driver
Creating mysql  ... done
Creating tomcat ... done

# 2. 查看由docker-compose管理的容器
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# docker-compose-Linux-x86_64 ps
 Name               Command               State           Ports         
------------------------------------------------------------------------
mysql    /entrypoint.sh mysqld --da ...   Up      0.0.0.0:3306->3306/tcp
tomcat   catalina.sh run                  Up      0.0.0.0:8080->8080/tcp
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# 

# 3. 查看日志
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# docker-compose-Linux-x86_64 logs -f

# 4. 關(guān)閉并刪除容器
[root@iz8vbdmrir2n6xqzrbd93hz docker_mysql_tomcat]# docker-compose-Linux-x86_64 down
Stopping tomcat ... done
Stopping mysql  ... done
Removing tomcat ... done
Removing mysql  ... done
Removing network docker_mysql_tomcat_default

# 5. 開啟|關(guān)閉|重啟已經(jīng)存在的由docker-compose維護的容器
docker-compose-Linux-x86_64 start|stop|restart

10.4 docker-compose配合Dockerfile使用

使用docker-compose.yml文件以及Dockerfile文件在生成自定義鏡像的同時啟動當前鏡像炫彩,并且由docker-compose去管理容器

10.4.1 為了方便操作,在盤符下創(chuàng)建docker_ssm文件夾絮短,在該目錄下創(chuàng)建Dockerfile文件以及拷貝video-web.war

編寫Dockerfile文件

from daocloud.io/library/tomcat:8.5.15-jre8
copy video-web.war /usr/local/tomcat/webapps
10.4.2 在docker_ssm目錄下創(chuàng)建docker-compose文件夾江兢,在docker-compose目錄下創(chuàng)建docker-compose.yml

編寫docker-compose.yml文件

# yml文件
version: '3.1'
services:
  video:  # mysql數(shù)據(jù)庫的名稱
    restart: always
    build:            # 構(gòu)建自定義鏡像
      context: ../      # 指定dockerfile文件的所在路徑
      dockerfile: Dockerfile   # 指定Dockerfile文件名稱
    image: video-ssm:1.0.1
    container_name: video-ssm
    ports:
      - 8081:8080
    environment:
      TZ: Asia/Shanghai
10.4.3 把docker_ssm目錄拷貝到虛擬機上的opt目錄下,然后測試

步驟如下:

[root@iz8vbdmrir2n6xqzrbd93hz opt]# ls
containerd  docker_mysql_tomcat  docker_ssm  yangl
[root@iz8vbdmrir2n6xqzrbd93hz opt]# cd docker_ssm/
[root@iz8vbdmrir2n6xqzrbd93hz docker_ssm]# ls
docker-compose  Dockerfile  video-web.war
[root@iz8vbdmrir2n6xqzrbd93hz docker_ssm]# cd docker-compose/
[root@iz8vbdmrir2n6xqzrbd93hz docker-compose]# ls
docker-compose.yml

# 可以直接啟動基于docker-compose.yml以及Dockerfile文件構(gòu)建的自定義鏡像
[root@iz8vbdmrir2n6xqzrbd93hz docker-compose]# docker-compose-Linux-x86_64 up -d
Building video
Step 1/2 : from daocloud.io/library/tomcat:8.5.15-jre8
 ---> b8dfe9ade316
Step 2/2 : copy video-web.war /usr/local/tomcat/webapps
 ---> 557e0830e974
Successfully built 557e0830e974
Successfully tagged video-ssm:1.0.1
WARNING: Image for service video was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating video-ssm ... done
# 出現(xiàn)以上內(nèi)容后丁频,可使用瀏覽器訪問進行測試(注意:提前在mysql創(chuàng)建對應名字的數(shù)據(jù)庫并導入數(shù)據(jù))

WARNING: Image for service video was built because it did not already exist. To rebuild this image you must use docker-compose build or docker-compose up --build.

以上警告表示內(nèi)容如下:

# 如果自定義鏡像不存在杉允,會幫助我們構(gòu)建出自定義鏡像邑贴,如果自定義鏡像已經(jīng)存在,會直接運行這個自定義鏡像
# 重新構(gòu)建的話叔磷。
# 重新構(gòu)建自定義鏡像
docker-compose build
# 運行當前內(nèi)容拢驾,并重新構(gòu)建
docker-compose up -d --build

十一. Docker CI、CD


11.1 CI改基、CD引言

項目部署

  • 將項目通過maven進行編譯打包
  • 將文件上傳到指定的服務器中
  • 將war包放到tomcat的目錄中
  • 通過Dockerfile將Tomcat和war包轉(zhuǎn)成一個鏡像繁疤,由DockerCompose去運行容器

項目更新后,需要將上述流程再次的從頭到尾的執(zhí)行一次秕狰,如果每次更新一次都執(zhí)行一次上述操作稠腊,很費時,費力鸣哀。我們就可以通過CI架忌、CD幫助我們實現(xiàn)持續(xù)集成,持續(xù)交付和部署我衬。

11.2 CI介紹

CI(continuous intergration)持續(xù)集成

持續(xù)集成:編寫代碼時叹放,完成了一個功能后,立即提交代碼到Git倉庫中挠羔,將項目重新的構(gòu)建并且測試井仰。

  • 快速發(fā)現(xiàn)錯誤。
  • 防止代碼偏離主分支褥赊。

11.3 搭建Gitlab服務器

實現(xiàn)CI糕档,需要使用到Gitlab遠程倉庫莉恼,先通過Docker搭建Gitlab

11.3.1 準備工作
  • 創(chuàng)建一個全新的虛擬機拌喉,并且至少指定4G的運行內(nèi)存,4G運行內(nèi)存是Gitlab推薦的內(nèi)存大小俐银。
  • 并且安裝Docker以及Docker-Compose
11.3.2 修改ssh的22端口

將ssh的默認22端口尿背,修改為60022端口,因為Gitlab需要占用22端口

vi /etc/ssh/sshd_config
  PORT 22 -> 60022
systemctl restart sshd
11.3.3 編寫docker-compose.yml

docker-compose.yml文件去安裝gitlab(下載和運行的時間比較長的)

version: '3.1'
services:
 gitlab:
  image: 'twang2218/gitlab-ce-zh:11.1.4'
  container_name: "gitlab"
  restart: always
  privileged: true
  hostname: 'gitlab'
  environment:
   TZ: 'Asia/Shanghai'
   GITLAB_OMNIBUS_CONFIG: |
    external_url 'http://192.168.199.110'
    gitlab_rails['time_zone'] = 'Asia/Shanghai'
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['gitlab_shell_ssh_port'] = 22
  ports:
   - '80:80'
   - '443:443'
   - '22:22'
  volumes:
   - /opt/docker_gitlab/config:/etc/gitlab
   - /opt/docker_gitlab/data:/var/opt/gitlab
   - /opt/docker_gitlab/logs:/var/log/gitlab

11.4 搭建GitlabRunner

查看資料中的gitlab-runner文件即可安裝

11.5 整合項目入門測試

11.5.1 創(chuàng)建項目

創(chuàng)建maven工程捶惜,添加web.xml文件田藐,編寫html頁面

11.5.2 編寫.gitlab-ci.yml

編寫.gitlab-ci.yml文件

stages:
  - test

test:
  stage: test
  script:
    - echo first test ci   # 輸入的命令
11.5.3 將maven工程推送到gitlab中

執(zhí)行g(shù)it命令推送到Gitlab

git push origin master
11.5.4 查看效果

可以在gitlab中查看到gitlab-ci.yml編寫的內(nèi)容

效果圖
image.png

11.6 完善項目配置

添加Dockerfile以及docker-compose.yml, 并修改.gitlab-ci.yml文件

11.6.1 創(chuàng)建Dockerfile
# Dockerfile
FROM daocloud.io/library/tomcat:8.5.15-jre8
COPY testci.war /usr/local/tomcat/webapps
11.6.2 創(chuàng)建docker-compose.yml
# docker-compose.yml
version: "3.1"
services:
  testci:
    build: docker
    restart: always
    container_name: testci
    ports:
      - 8080:8080
11.6.3 修改.gitlab-ci.yml
# ci.yml
stages:
  - test

test:
  stage: test
  script:
    - echo first test ci
    - /usr/local/maven/apache-maven-3.6.3/bin/mvn package
    - cp target/testci-1.0-SNAPSHOT.war docker/testci.war
    - docker-compose down
    - docker-compose up -d --build
    - docker rmi $(docker images -qf dangling=true)
11.6.4 測試
測試效果
image.png

11.7 CD介紹

CD(持續(xù)交付吱七,持續(xù)部署)

持續(xù)交付:將代碼交付給專業(yè)的測試團隊去測試

持續(xù)部署:可以直接將指定好tag的代碼直接部署到生產(chǎn)環(huán)境中

CICD圖
image.png

11.8 安裝Jenkins

11.8.1 編寫docker-compose.yml

官網(wǎng):https://www.jenkins.io/

version: "3.1"
services:
  jenkins:
   image: jenkins/jenkins
   restart: always
   container_name: jenkins
   ports:
     - 8888:8080
     - 50000:50000
   volumes:
     - ./data:/var/jenkins_home
11.8.2 運行并訪問Jenkins

第一次運行時汽久,會因為data目錄沒有權(quán)限,導致啟動失敗

chmod 777 data

訪問http://192.168.199.109:8888

訪問速度奇慢無比踊餐。景醇。。吝岭。三痰。

訪問成功后吧寺,需要輸入密碼,可在日志中查看

image.png

手動指定插件安裝:指定下面兩個插件即可

publish ssh.

git param.

image.png

安裝成功后散劫,需要指定上用戶名和密碼稚机,登陸成功

image.png

11.9 配置Jenkins的目標服務器

執(zhí)行過程為代碼提交到Gitlab,Jenkins會從Gitlab中拉取代碼获搏,并在Jenkins中打包并發(fā)布到目標服務器中赖条。

11.9.1 點擊左側(cè)的系統(tǒng)設置
左側(cè)導航
image.png
11.9.2 選中中間區(qū)域的系統(tǒng)設置
系統(tǒng)設置
image.png
11.9.3 搜索Publish over SSH
Publish over SSH
image.png
11.9.4 點擊上圖新增
新增SSH連接
image.png

11.10 配置GitLab免密碼登錄

鏈接Gitlab需要使用密碼,我們可以通過SSH的方式颜凯,免密碼登陸Gitlab拉取代碼谋币,避免每次都輸入密碼。

11.10.1登錄Jenkins容器內(nèi)部
docker exec -it jenkins bash
11.10.2 輸入生成SSH秘鑰命令
ssh-keygen -t rsa -C "郵箱(隨便寫)"
11.10.3將秘鑰復制到GitLab的SSH中
配置密鑰
image.png

11.11 配置JDK和Maven

我們需要再Jenkins中將代碼打包症概,需要依賴JDK和Maven的環(huán)境

11.11.1 復制軟件到data目錄下
效果
image.png
11.11.2 在監(jiān)控界面中配置JDK和Maven
配置環(huán)境變量
image.png
11.11.3 手動拉取gitlab項目

使用SSH無密碼連接時蕾额,第一次連接需要手動確定

手動拉取一次
image.png

11.12 創(chuàng)建maven任務

實現(xiàn)通過Jenkins的Maven任務,自動去Gitlab拉取代碼彼城,并在本地打包诅蝶,發(fā)布到目標服務器上

11.12.1 創(chuàng)建maven工程,推送到GitLab中

隨便創(chuàng)建一個即可……

11.12.2 Jenkins的監(jiān)控頁面中創(chuàng)建maven任務
指定GitLab地址
image.png
指定maven打包方式
image.png
11.12.3 執(zhí)行maven任務
立即構(gòu)建募壕,并查看日志
image.png
控制臺查看日志信息
image.png
11.12.4 最終效果
打包成功
image.png

11.13 實現(xiàn)持續(xù)交付持續(xù)部署

實現(xiàn)根據(jù)tag標簽调炬,實現(xiàn)持續(xù)交付和持續(xù)部署

11.13.1 安裝Persistent Parameter的插件
安裝插件
image.png
11.13.2 重新指定構(gòu)建項目的方式
根據(jù)標簽構(gòu)建項目
image.png
自定義構(gòu)建
image.png
11.13.3 構(gòu)建項目成功后,需要將內(nèi)容發(fā)布到目標服務器
發(fā)布服務器后執(zhí)行的命令
image.png
11.13.4 添加程序代碼
# Dockerfile 文件
FROM daocloud.io/library/tomcat:8.5.15-jre8
COPY testcd-1.0-SNAPSHOT.war /usr/local/tomcat/webapps

# docker-compose.yml文件
version: "3.1"
services:
  testcd:
    build: docker
    restart: always
    container_name: testcd
    ports:
      - 8081:8080
11.13.5 測試
根據(jù)標簽修改發(fā)布版本
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舱馅,一起剝皮案震驚了整個濱河市缰泡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌代嗤,老刑警劉巖棘钞,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異干毅,居然都是意外死亡宜猜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門硝逢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姨拥,“玉大人,你說我怎么就攤上這事渠鸽〗形冢” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵徽缚,是天一觀的道長憨奸。 經(jīng)常有香客問我,道長猎拨,這世上最難降的妖魔是什么膀藐? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任屠阻,我火速辦了婚禮,結(jié)果婚禮上额各,老公的妹妹穿的比我還像新娘国觉。我一直安慰自己,他們只是感情好虾啦,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布麻诀。 她就那樣靜靜地躺著,像睡著了一般傲醉。 火紅的嫁衣襯著肌膚如雪蝇闭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天硬毕,我揣著相機與錄音呻引,去河邊找鬼。 笑死吐咳,一個胖子當著我的面吹牛逻悠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播韭脊,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼童谒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沪羔?” 一聲冷哼從身側(cè)響起饥伊,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔫饰,沒想到半個月后琅豆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡死嗦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年趋距,在試婚紗的時候發(fā)現(xiàn)自己被綠了粒氧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片越除。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖外盯,靈堂內(nèi)的尸體忽然破棺而出摘盆,到底是詐尸還是另有隱情,我是刑警寧澤饱苟,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布孩擂,位于F島的核電站,受9級特大地震影響箱熬,放射性物質(zhì)發(fā)生泄漏类垦。R本人自食惡果不足惜狈邑,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚤认。 院中可真熱鬧米苹,春花似錦、人聲如沸砰琢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陪汽。三九已至训唱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挚冤,已是汗流浹背况增。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留训挡,地道東北人巡通。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像舍哄,于是被迫代替她去往敵國和親宴凉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容