前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Docker构建安装Git/GitLab,以及制作springboot工程镜像

基于Docker构建安装Git/GitLab,以及制作springboot工程镜像

作者头像
艾编程
发布2020-06-10 09:48:23
4.2K0
发布2020-06-10 09:48:23
举报
文章被收录于专栏:艾编程

Git/GitLab版本控制与代码云存储的场所

免费开源的分布式版本控制系统

本地离线存储:绝大多数操作都只需要访问本地文件和资源,不用连网,在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。

分布式:每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。

免费开源:安装基于Apache,Ruby等免费开源软件, 旨在快速高效地处理无论规模大小的任何软件工程 ,商业用户无任何限制,完全放心使用。

安装启动docker

1、安装docke

代码语言:javascript
复制
# 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、配置镜像加速器

代码语言:javascript
复制
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、安装私有仓库

代码语言:javascript
复制
# 拉取镜像
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

如果访问不到,关闭防火墙:

代码语言:javascript
复制
systemctl stop firewalld

docker下gitlab安装配置使用

1、安装

代码语言:javascript
复制
#查找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)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

#配置域名或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、创建项目

代码语言:javascript
复制
http-demo

安装Git

代码语言:javascript
复制
# 安装
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,此文件中记录了在提交代码时哪些文件或目录被忽略

代码语言:javascript
复制
.idea/
target/
*.iml

Springboot工程制作镜像

1、SpringBoot运行Jar包

使用maven的打包插件

将下边的插件依赖拷贝到微服务工程中

代码语言:javascript
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

使用maven打包并运行访问微服务工程

代码语言:javascript
复制
java -jar http-demo-1.0-SNAPSHOT.jar

2、创建Docker镜像

在linux上新建一个目录,将上一步的jar包拷贝到Linux服务器,准备创建镜像。

代码语言:javascript
复制
cd /home
mkdir icoding

测试jar包是否可以运行,执行:java -jar

代码语言:javascript
复制
java -jar http-demo-1.0-SNAPSHOT.jar

访问:http://192.168.200.133:10000/user/1

在http-demo-1.0-SNAPSHOT.jar所在文件夹位置编写Dockerfile文件

代码语言:javascript
复制
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文件所在目录创建镜像

代码语言:javascript
复制
docker build -t http-demo:1.0-SNAPSHOT .

查看镜像

代码语言:javascript
复制
docker images

3、创建启动容器

基于http-demo:1.0-SNAPSHOT镜像创建容器,容器名称为http-demo

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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最新项目

代码语言:javascript
复制
git clone http://192.168.200.133:8888/root/http-demo.git

(5 )打包构建镜像

代码语言:javascript
复制
#进入工程目录
cd http-demo
​
#打包构建镜像
mvn -f pom_docker.xml clean package -DskipTests docker:build

(6)创建启动容器

基于http-demo:1.0-SNAPSHOT镜像创建容器,容器名称为http-demo

代码语言:javascript
复制
docker run -d -p 10000:10000 http-demo:1.0-SNAPSHOT

容器创建成功,可通过docker ps -a命令查看

(7) 访问页面

代码语言:javascript
复制
http://192.168.200.133:10000/user/1
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Git/GitLab版本控制与代码云存储的场所
  • 安装启动docker
    • 1、安装docke
      • 2、配置镜像加速器
        • 3、安装私有仓库
      • 4、访问私有仓库
      • docker下gitlab安装配置使用
        • 1、安装
          • 2、配置
            • 3、初始化密码
              • 4、登录
                • 5、创建项目
                • 安装Git
                • 使用Git管理项目
                  • 1、使用idea从GitLab检出空项目
                    • 2、复制项目并运行
                      • 3、提交代码到GitLab
                      • Springboot工程制作镜像
                        • 1、SpringBoot运行Jar包
                          • 2、创建Docker镜像
                            • 3、创建启动容器
                              • 4、访问页面
                                • 5、 停止与删除
                                  • 6、 使用maven构建镜像
                                    • (1)编写pom_docker.xml
                                    • (2 )拷贝Dockerfile文件
                                    • (3 )在IDEA中提交修改的文件
                                    • (4) lclone最新项目
                                    • (5 )打包构建镜像
                                    • (6)创建启动容器
                                    • (7) 访问页面
                                相关产品与服务
                                容器服务
                                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档