网站首页 > 博客文章 正文
今天给大家分享的是《领先的开源自动化服务器Jenkins的应用实战》之基于Docker安装构建Git/GitLab版本控制与代码云存储的场所;使用Git管理项目,springboot工程制作镜像知识体系,欢迎大家一起阅读!
Git/GitLab版本控制与代码云存储的场所
免费开源的分布式版本控制系统
本地离线存储:绝大多数操作都只需要访问本地文件和资源,不用连网,在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。
分布式:每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。
免费开源:安装基于Apache,Ruby等免费开源软件, 旨在快速高效地处理无论规模大小的任何软件工程 ,商业用户无任何限制,完全放心使用。
安装启动docker
1、安装docke
# 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
3、安装私有仓库
# 拉取镜像
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
docker下gitlab安装配置使用
1、安装
#查找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
2、配置
按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:
/home/gitlab/config/gitlab.rb)
#配置域名或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
2、复制项目并运行
idea中运行项目并访问:
http://127.0.0.1:10000/user/1
3、提交代码到GitLab
在工程根目录创建 .gitignore,此文件中记录了在提交代码时哪些文件或目录被忽略
.idea/
target/
*.iml
Springboot工程制作镜像
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
2、创建Docker镜像
在linux上新建一个目录,将上一步的jar包拷贝到Linux服务器,准备创建镜像。
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
3、创建启动容器
基于http-demo:1.0-SNAPSHOT镜像创建容器,容器名称为http-demo
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插件可完成从打包到构建镜像、构建容器等过程。
(1)编写pom_docker.xml
<?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>
(2 )拷贝Dockerfile文件
(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) 访问页面
http://192.168.200.133:10000/user/1
欢迎大家关注艾编程公众号,回复“Jenkins”看完整的视频和资料内容哦!
猜你喜欢
- 2025-04-27 Docker 容器操作命令:你真的用对了吗?
- 2025-04-27 在豆包的协助下,折腾了一天,电脑盲终于把Doccano安装好了
- 2025-04-27 Docker Compose 使用说明
- 2025-04-27 云原生时代下的Linux容器排错指南
- 2025-04-27 Ollama使用指南【超全版】
- 2025-04-27 Docker 类面试题(常见问题)
- 2025-04-27 记一次Docker映像的升级经历,有几个小细节还真得注意
- 2025-04-27 「ELK」elastalert 日志告警
- 2025-04-27 Docker容器化部署Java应用的妙招
- 2025-04-27 NAS的神级Docker推荐:从入门到精通的完全指南
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 368℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 359℃初次使用IntelliJ IDEA新建Maven项目
- 352℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)