今天給大家分享的是《領先的開源自動化服務器Jenkins的應用實戰》之基於Docker安裝構建Git/GitLab版本控制與代碼雲存儲的場所;使用Git管理項目,springboot工程制作鏡像知識體系,歡迎大家一起閱讀!
Git/GitLab版本控制與代碼雲存儲的場所
免費開源的分布式版本控制系統
本地離線存儲:絕大多數操作都只需要訪問本地文件和資源,不用連網,在本地磁盤上就保存着所有當前項目的歷史更新,所以處理起來速度飛快。
分布式:每一個 Git克隆 都是一個完整的文件庫,含有全部歷史記錄和修訂追蹤能力,不依賴於網絡連接或中心服務器。其最大特色就是“分支”及“合並”操作非常快速、簡便。
免費開源:安裝基於Apache,Ruby等免費開源軟件, 旨在快速高效地處理無論規模大小的任何軟件工程 ,商業用戶無任何限制,完全放心使用。
# 1、yum 包更新到最新 yum update # 2、安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的 yum install -y yum-utils device-mapper-persistent-data lvm2 # 3、 設置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 4、 安裝docker,出現輸入的界面都按 y yum install -y docker-ce # 5、 查看docker版本,驗證是否驗證成功 docker -v
2、配置鏡像加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://8cqoh10g.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
# 拉取鏡像 docker pull registry # 創建容器 docker run -d -p 5000:5000 registry #配置私有倉庫地址 vim /etc/docker/daemon.json { "insecure-registries": ["192.168.200.133:5000"] } sudo systemctl daemon-reload sudo systemctl restart docker #啟動本地倉庫容器 docker start 容器ID
4、訪問私有倉庫
http://192.168.200.133:5000/v2/_catalog
如果訪問不到,關閉防火牆:
systemctl stop firewalld
#查找Gitlab鏡像 docker search gitlab #gitlab鏡像拉取 docker pull gitlab/gitlab-ce #查看本地鏡像 docker images #本機建立的3個目錄 #為了gitlab容器通過掛載本機目錄啟動后可以映射到本機,然后后續就可以直接在本機查看和編輯了,不用再進容器操作 #配置文件 mkdir -p /home/gitlab/etc #數據文件 mkdir -p /home/gitlab/data #日志文件 mkdir -p /home/gitlab/logs #啟動容器 docker run --name='gitlab' -d \ --publish 4443:443 --publish 8888:80 \ -v /home/gitlab/etc:/etc/gitlab \ -v /home/gitlab/data:/var/opt/gitlab \ -v /home/gitlab/logs:/var/log/gitlab \ gitlab/gitlab-ce:latest #查看啟動日志 docker logs -f gitlab
#配置域名或IP #配置gitlab.rb cd /home/gitlab/etc vim gitlab.rb #配置http協議所使用的訪問地址,不加端口號默認為80 external_url 'http://192.168.200.133' #配置gitlab.yml cd /home/gitlab/data/gitlab-rails/etc vim gitlab.yml gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: 192.168.200.133 port: 8888 https: false
3、初始化密碼
gitlab 默認管理用戶是root
登錄:http://192.168.200.133:8888 登錄修改root 的密碼
4、登錄
用戶名 root 密碼
5、創建項目
http-demo
安裝Git
# 安裝 yum install -y git # 查看版本 git version # git version 1.8.3.1
使用Git管理項目
1、使用idea從GitLab檢出空項目
項目地址:http://192.168.200.133:8888/root/http-demo.git
idea中運行項目並訪問:http://127.0.0.1:10000/user/1
3、提交代碼到GitLab
在工程根目錄創建 .gitignore,此文件中記錄了在提交代碼時哪些文件或目錄被忽略
.idea/
target/
*.iml
1、SpringBoot運行Jar包
使用maven的打包插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
使用maven打包並運行訪問微服務工程
java -jar http-demo-1.0-SNAPSHOT.jar
cd /home
mkdir icoding
測試jar包是否可以運行,執行:java -jar
java -jar http-demo-1.0-SNAPSHOT.jar
訪問:http://192.168.200.133:10000/user/1
在http-demo-1.0-SNAPSHOT.jar所在文件夾位置編寫Dockerfile文件
vim Dockerfile FROM java:8 # VOLUME 指定了臨時文件目錄為/tmp。 # 其效果是在主機 /var/lib/docker 目錄下創建了一個臨時文件,並鏈接到容器的/tmp VOLUME /tmp # 將jar包添加到容器中並更名為app.jar ADD http-demo-1.0-SNAPSHOT.jar app.jar # 運行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
在Dockerfile文件所在目錄創建鏡像
docker build -t http-demo:1.0-SNAPSHOT .
查看鏡像
docker images
docker run -d -p 10000:10000 http-demo:1.0-SNAPSHOT
容器創建成功,可通過docker ps -a命令查看
4、訪問頁面
http://192.168.200.133:10000/user/1
5、 停止與刪除
停止容器 刪除容器 刪除鏡像
6、 使用maven構建鏡像
上邊構建的過程是通過手工一步一步完成,maven提供docker-maven-plugin插件可完成從打包到構建鏡像、構建容器等過程。
<?xml version="1.0" encoding="UTF-8"?> <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.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> </parent> <groupId>com.icoding</groupId> <artifactId>http-demo</artifactId> <version>1.0-SNAPSHOT</version> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <!--docker鏡像相關的配置信息--> <configuration> <!--鏡像名,這里用工程名--> <imageName>${project.artifactId}</imageName> <!--Dockerfile文件所在目錄--> <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory> <!--TAG,這里用工程版本號--> <imageTags> <imageTag>${project.version}</imageTag> </imageTags> <!--構建鏡像的配置信息--> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.artifactId}-${project.version}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> </project>
(3 )在IDEA中提交修改的文件
(4) lclone最新項目
git clone http://192.168.200.133:8888/root/http-demo.git
(5 )打包構建鏡像
#進入工程目錄
cd http-demo
#打包構建鏡像
mvn -f pom_docker.xml clean package -DskipTests docker:build
(6)創建啟動容器
基於http-demo:1.0-SNAPSHOT鏡像創建容器,容器名稱為http-demo
docker run -d -p 10000:10000 http-demo:1.0-SNAPSHOT
容器創建成功,可通過docker ps -a命令查看
(7) 訪問頁面
歡迎大家關注艾編程公眾號,回復“
”看完整的視頻和資料內容哦!