安装启动实例

1.首先创建一个目录用于存放配置

sudo docker pull docker.io/gitlab/gitlab-ce
sudo mkdir -p /root/docker/gitlab/config
sudo mkdir -p /root/docker/gitlab/logs
sudo mkdir -p /root/docker/gitlab/data

2.运行实例(关于最新版本的https 没有搞定,晚上说的都是旧版本, 尝试了一下 旧版本也是无果的,还有官方的新版有很多监控)

docker run -d --hostname 192.168.100.5  -p :  -p :  -p :   -v /root/docker/gitlab/config:/etc/gitlab   -v /root/docker/gitlab/logs:/var/log/gitlab   -v /root/docker/gitlab/data:/var/opt/gitlab   --restart always  --name gitlab  gitlab/gitlab-ce:latest
# --hostname 指定容器域名,未知功能:创建镜像仓库的时候使用到
# 将容器内443端口映射到主机8443,提供https服务
# 将容器内80端口映射到主机8080,提供http服务
# 将容器内22端口映射到主机2222,提供ssh服务

查看Gitlab容器运行情况

docker inspect gitlab --format "{{.State.Status}}"

4..初次使用gitlab时需要创建默认管理员密码,至少8位,这里输入“12345678”。

我们在登录那里使用root作为用户名,然后用刚刚设置的密码,就可以以管理员身份登录Gitlab。

创建并拉取项目

我们来创建一个项目(public 不需要login的),然后简单测试一下,如果用户是windows建议可以考虑安装GitTortoiseGit图形界面操作。

上面我们这个项目是public, 现在修改为internal(需要用户密码)

然后修改tortoisegit设置

最后如图:

目前还有个遗留问题,就是external_url 的配置(现在在gitlab上的http克隆地址是http://192.168.100.5/root/webapi.git,是没有8080端口,是我自己手动添加的),网上找了很多方法都没有搞定。

后来我重新准备一个新的ubuntu虚拟机,就用默认的端口:

docker run -d --hostname 192.168.100.16  -p 2222:22  -p 80:80  -p 443:443   -v /root/docker/gitlab/config:/etc/gitlab   -v /root/docker/gitlab/logs:/var/log/gitlab   -v /root/docker/gitlab/data:/var/opt/gitlab   --restart always  --name gitlab  gitlab/gitlab-ce:latest

结果一切都好了

Push项目

在使用git推送代码到远程的gitlab库时抛出,You are not allowed to push code to this project“的错误信息。详细信息如下:

点击gitlab的“Settings”> “Repository”,在打开的界面选择 “Protected Branches”项的“Expand”按钮。如下图

在打开的界面可以看见master分支是在受保护的,我们只需要点击“unprotect”按钮,将master分支从受保护中移除。如下图:

4.如果还没有解决的话,还请检查一下用户权限:

SSH配置:

由于端口我这里改为2222,所以需要修改gitlab.rb配置 然后重启docker(docker container restart gitlab)

gitlab_rails['gitlab_shell_ssh_port'] =
#ssh访问地址需要添加端口号 变为 git clone ssh://git@192.168.100.16:2222/root/webapi.git

现在我们来创建ssh  key

git config --global user.name "gavin"
git config --global user.email "gavinzhangsan@outlook.com"
ssh-keygen -t rsa -C "gavinzhangsan@outlook.com" #后面直接回车 回车就可以了

在git lab删添加key

https配置:

sudo mkdir -p /root/docker/gitlab/config/ssl
openssl req -new -newkey rsa: -days -nodes -x509 -subj "/C=FR/ST=Charente/L=Mornac/O=Office/CN=gitlab.domain.com" -keyout /root/docker/gitlab/config/ssl/gitlab.domain.com.key -out /root/docker/gitlab/config/ssl/gitlab.domain.com.crt
#生成证书到/root/docker/gitlab/config/ssl目录

修改gitlab.rb配置:

external_url 'https://gitlab.domain.com'
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] =
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.domain.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.domain.com.key"
nginx['listen_port'] =
nginx['proxy_set_headers'] = {
"Host" => "$http_host_with_default",
"X-Real-IP" => "$remote_addr",
"X-Forwarded-For" => "$proxy_add_x_forwarded_for",
"X-Forwarded-Proto" => "https",
"X-Forwarded-Ssl" => "on",
"Upgrade" => "$http_upgrade",
"Connection" => "$connection_upgrade"
}

在host文件中增加配置:

192.168.100.16 gitlab.domain.com

现在应用新的配置, 然后重启docker

-----以下是网上找的一点资料 看上去比较靠谱 但实际没有解决问题-----

首先,备份默认gitlab.rb和gitlab.yml

cd /root/docker/gitlab/config
cp gitlab.rb gitlab.rb.default

按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址(实际上我搞了很久也没有搞定external_url , 也就是http访问, 最后实在不行就用ssh协议吧),修改/root/docker/gitlab/config/gitlab.rb

# 配置http协议所使用的访问地址
external_url 'http://192.168.100.5'
#nginx['listen_addresses'] = ['*', '[::]']
#nginx['listen_port'] = 8080
# 配置ssh协议所使用的访问地址和端口
#gitlab_rails['gitlab_ssh_host'] = '192.168.100.5'
#gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 此端口是run时22端口映射的2222端口

然后重启容器:

docker exec -t gitlab gitlab-ctl reconfigure
docker exec -t gitlab gitlab-ctl restart

参考:

docker安装配置gitlab详细过程

通过docker安装Gitlab

Use Docker-Compose to Run Gitlab via Https With Self-signed CA

正确使用 Docker 搭建 GitLab 只要半分钟

Centos7:Docker安装Gitlab

使用docker-compose搭建gitlab

Ubuntu Docker搭建GitLab以及常规配置使用的更多相关文章

  1. [转帖]知乎专栏:正确使用 Docker 搭建 GitLab 只要半分钟

    正确使用 Docker 搭建 GitLab 只要半分钟 https://zhuanlan.zhihu.com/p/49499229 很多程序员在内网搭建 gitlab 都搭建的坑坑洼洼,不支持 htt ...

  2. Docker搭建镜像仓库和配置缓冲地点

    Docker搭建镜像仓库和配置缓冲地点 参考网址:https://docs.docker.com/engine/reference/commandline/dockerd/#options 一.配置D ...

  3. 【Devops】【docker】【CI/CD】1.docker搭建Gitlab环境

    CI/CD[持续化集成/持续化交付] docker搭建Gitlab环境 1.查询并拉取gitlab镜像 docker search gitlab docker pull gitlab/gitlab-c ...

  4. Docker 搭建 GitLab

    Docker 搭建 GitLab 步骤 # 创建目录 mkdir -p /usr/local/gitlab && cd /usr/local/gitlab # 创建映射目录 mkdir ...

  5. 本地docker搭建gitlab, 并配置ldap认证

    基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下:   1. 安装Docker for Mac (参见https://docs.docker.com/docker-for ...

  6. Centos7使用docker搭建gitlab服务器

    了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器. 效果图如下: 系统环境:CentOS Linux rele ...

  7. 使用docker搭建gitlab服务器

    简单记录Docker的使用和GitLab的搭建 Docker基础篇 没有sudo权限 安装docker 基础命令 docker安装mysql和配置 Dockerfile常用命令 制作镜像 发布镜像 容 ...

  8. 基于docker搭建gitlab

    一.概述 GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. 它拥有与Github类似的功能,能够浏览 ...

  9. Docker学习系列(三)Docker搭建gitlab的两种方式

    一.直接下载docker-ce 1.拉取gitlab/gitlab-ce Randy:~ Randy$ docker pull gitlab/gitlab-ce Using default tag: ...

随机推荐

  1. React学习笔记③

    生命周期的理解 class App extends Component{ constructor(){ console.log("constructor") //初始化属于组件的属 ...

  2. Android源码分析(十六)----adb shell 命令进行OTA升级

    一: 进入shell命令界面 adb shell 二:创建目录/cache/recovery mkdir /cache/recovery 如果系统中已有此目录,则会提示已存在. 三: 修改文件夹权限 ...

  3. MySQLDump--导出数据脚本异常

    在一次使用mysqldump导出数据过程中,发现导出SQL无法正常执行,仔细观察后发下导出脚本为: (,,,,' Yimu(id:5085297)',''¥','[新教室V32] ',15593224 ...

  4. C语言形参跟实参详解

    形参与实参今天我们来说下c语言形参与实参的区别,形参跟实参理解的话也很简单,但是好多同学关于这个知识点都是一知半解,没有真正的去透彻,一问都知道,但在真正引用的时候还会出现很多问题,而百度的时候又会说 ...

  5. istio部署-helm

    参考 istio/istio istio/Kubernetes Customizable Install with Helm Istio安装参数介绍 1. Istio Chart 目录结构 PATH: ...

  6. 使用cookiecutter创建django项目

    使用cookiecutter创建django项目 下载安装: pip install cookiecutter cookiecutter https://github.com/pydanny/cook ...

  7. ReSharper安装

    ReSharper是一个JetBrains公司出品的著名的代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE.它包括一系列丰富的能大大增加C#和Visual Ba ...

  8. 没有该栏目数据, 可能缓存文件(/data/cache/inc_catalog_base.inc)没有更新, 请检查是否有写入权限

    今天朋友在创建新栏目时出现了一个无法生成的错误,提示没有该栏目数据, 可能缓存文件(/data/cache/inc_catalog_base.inc)没有更新, 请检查是否有写入权限,其实这个相对比较 ...

  9. USACO Superprime Rib

    洛谷 P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 洛谷传送门 JDOJ 1673: Superprime Rib JDOJ传送门 题目描述 农民约翰的母牛总是产生最好 ...

  10. eclipse 导入项目后,在工程图标上出现红叉,但是工程中的文件并没有提示错误的解决方法

    进入项目包下的.settings目录,找到org.eclipse.wst.common.project.facet.core.xml文件,用记事本打开后才发现这句话有问题:<runtime na ...