Docker-compose一键部署gitlab中文版

一、gitlab介绍
gitlab官方地址:https://about.gitlab.com/
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
gitlab就是一个代码仓库,能够非常好地实现对代码的管理和开发人员之间的团队协作。目前应用最为广泛地就是利用jenkins和gitlab实现持续集成和部署。官方的推荐配置为2核心CPU和4G内存,这是因为gitlab的整体运行包含了多个进程,如:nginx、postgresql、prometheus、redis等等。
为此,这里使用docker-compose进行单机部署gitlab中文社区版本,让大家更好地体会gitlab的强大功能,其余废话就不多说了,直接开撸就对了!!
二、安装Docker

  1. 安装docker依赖包

    [[email protected] ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

2.添加Docker-ce镜像源并安装
1.1)国外源(适合在国外工作的朋友)

[[email protected] ~]# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

1.2)国内阿里云源(适合在国内工作的朋友)

[[email protected] ~]# yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2)服务器的包信息下载到本地电脑缓存起来

[[email protected] ~]# yum makecache fast

3)安装docker CE

[[email protected] ~]# yum -y install docker-ce

4)配置下载docker镜像加速器

国外加速器:
[[email protected] ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://bc437cce.m.daocloud.io
国内阿里云加速器:
vim /etc/docker/daemon.json
#输入下面内容并保存:
{
"registry-mirrors": ["https://9w1hl6qt.mirror.aliyuncs.com"]
}

5)重载systemctl并自动和开启自启动docker

[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl start docker
[[email protected] ~]# systemctl enable docker
[[email protected] ~]# docker --version
Docker version 18.09.0, build 4d60db4

三、安装Docker-compose
下载Docker-compose二进制文件并添加执行权限

[[email protected] ~]# curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s-uname -m` -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 617 0 617 0 0 590 0 --:--:-- 0:00:01 --:--:-- 590
100 11.2M 100 11.2M 0 0 498k 0 0:00:23 0:00:23 --:--:-- 737k
[[email protected] ~]# chmod +x /usr/local/bin/docker-compose
[[email protected] ~]# docker-compose --version
docker-compose version 1.23.2, build 1110ad01

四、安装Gitlab
1)编辑docker-compose的yml文件

[[email protected] ~]# mkdir gitlab
[[email protected] ~]# cd gitlab
[[email protected] gitlab]# vim docker-compose.yml

 version: ‘2‘
 services:
     gitlab:
       image: ‘twang2218/gitlab-ce-zh:latest‘
       container_name: "gitlab"
       restart: unless-stopped
       privileged: true
       hostname: ‘gitlab‘
       environment:
        TZ: ‘Asia/Shanghai‘
        GITLAB_OMNIBUS_CONFIG: |
          external_url ‘http://ip或者用nginx做反代的域名‘
          gitlab_rails[‘time_zone‘] = ‘Asia/Shanghai‘
          gitlab_rails[‘smtp_enable‘] = true
          gitlab_rails[‘smtp_address‘] = "smtp.163.com"
          gitlab_rails[‘smtp_port‘] = 465
          gitlab_rails[‘smtp_user_name‘] = "[email protected]"
          gitlab_rails[‘smtp_password‘] = "授权码"
          gitlab_rails[‘smtp_domain‘] = "163.com"
          gitlab_rails[‘smtp_authentication‘] = "login"
          gitlab_rails[‘smtp_enable_starttls_auto‘] = true
          gitlab_rails[‘smtp_tls‘] = true
          gitlab_rails[‘gitlab_email_from‘] = ‘[email protected]‘
          gitlab_rails[‘gitlab_shell_ssh_port‘] = 22
       ports:
          - ‘8181:80‘
          - ‘8443:443‘
          - ‘22:22‘
       volumes:
          - /opt/gitlab/config:/etc/gitlab
          - /opt/gitlab/data:/var/opt/gitlab
          - /opt/gitlab/logs:/var/log/gitlab

端口映射说明以及注意事项:
gitlab镜像官方推荐容器80端口映射宿主机8181端口
gitlab镜像官方推荐容器443端口映射宿主机8443端口
gitlab镜像官方推荐容器22端口映射宿主机22端口
??头两行不能顶头写,要分别都空一行,可以去yml文件检测网站进行检测:
https://www.bejson.com/validators/yaml_editor/
如你们的检测如下图所示,则表示yml文件完全无误:

下面是在我linux服务器上看到的情况:

2)创建相关目录

[[email protected] gitlab]# mkdir -p /opt/gitlab/{config,data,logs}
[[email protected] gitlab]# ls -l /opt/gitlab/
total 0
drwxr-xr-x 2 root root 6 Dec 22 12:03 config
drwxr-xr-x 2 root root 6 Dec 22 12:03 data
drwxr-xr-x 2 root root 6 Dec 22 12:03 logs
目录说明如下:
config 存储 GitLab 配置信息
data 存储数据库
logs 存储日志

3)拉取gitlab中文版镜像

[[email protected] gitlab]# docker pull twang2218/gitlab-ce-zh:latest
latest: Pulling from twang2218/gitlab-ce-zh
8ee29e426c26: Pull complete
6e83b260b73b: Pull complete
e26b65fd1143: Pull complete
40dca07f8222: Pull complete
b420ae9e10b3: Pull complete
a218309dd589: Pull complete
5c60fd7ba0ce: Pull complete
659c2144b5a3: Pull complete
8289bbac0d0e: Pull complete
31bbd150e8a7: Pull complete
9114e78243fa: Pull complete
e242e5cd1314: Pull complete
0a079dc3f92c: Pull complete
f0e195b09fd2: Pull complete
6e23346e2f58: Pull complete
91f00659be69: Pull complete
a1031bcc5b2c: Pull complete
e3074327c7b1: Pull complete
a917618dbe42: Pull complete
Digest: sha256:62686b74c6fca5ece8ed582d03a126c5988423dd8a19ce70e9a22357ffcaf1c8
Status: Downloaded newer image for twang2218/gitlab-ce-zh:latest

[[email protected] gitlab]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
twang2218/gitlab-ce-zh latest 18da462b5ff5 4 months ago 1.61GB

4)启动gitlab的容器

在启动前,先要修改宿主机的22端口,因为宿主机占用了22端口,所以启动容器会失败,因为映射不过来,修改如下:
vim /etc/ssh/sshd_config
默认在第17行修改:Port 2222
修改后,重启sshd:systemctl restart sshd
[[email protected] gitlab]# netstat -tulnp | grep 22
tcp 0 0 0.0.0.0:2222 0.0.0.0: LISTEN 31889/sshd
tcp6 0 0 :::2222 :::
LISTEN 31889/sshd

正式启动:

[[email protected] gitlab]# docker-compose up -d
Creating network "gitlab_default" with the default driver
Creating gitlab ... done

[[email protected] gitlab]# docker-compose ps
Name Command State Ports
gitlab /assets/wrapper Up (healthy) 0.0.0.0:22->22/tcp, 0.0.0.0:8443->443/tcp, 0.0.0.0:8181->80/tcp

[[email protected] gitlab]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
814e559dc728 twang2218/gitlab-ce-zh:latest "/assets/wrapper" 5 minutes ago Up 5 minutes (healthy) 0.0.0.0:22->22/tcp, 0.0.0.0:8181->80/tcp, 0.0.0.0:8443->443/tcp gitlab

5)gitlab设置开机启动

[[email protected] gitlab]# chmod +x /etc/rc.local
[[email protected] gitlab]# ls -l /etc/rc.local
lrwxrwxrwx 1 root root 13 Dec 3 14:31 /etc/rc.local -> rc.d/rc.local
[[email protected] gitlab]# echo "cd /root/gitlab && docker-compose up -d" >> /etc/rc.local
[[email protected] gitlab]# tail -1 /etc/rc.local
cd /root/gitlab && docker-compose up -d

6)gitlab管理界面
地址:在浏览器输入yml文件的第12行ip或者域名
用户:root
密码:首次登陆需要手动设置密码
如下图所示:


原文地址:http://blog.51cto.com/zpf666/2333869

时间: 2024-07-30 10:09:16

Docker-compose一键部署gitlab中文版的相关文章

Docker Compose 一键部署Nginx代理Tomcat集群

Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [[email protected] ~]# tree compose_nginx_tomcat/ compose_nginx_tomcat/ ├── docker-compose.yml ├── mysql │   ├── conf │   │   └── my.cnf │   └── data ├── nginx │   ├── Dockerfile │   ├── nginx-1.12.1.tar.gz │  

Docker compose 一键部署LNMP平台

docker-compose.yml version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 80:80 links: - php:php-cgi volumes: - ./wwwroot:/usr/local/nginx/html php: hostname: php build: ./php links: - mysql:mysql-db vol

Docker Compose 项目打包部署

Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知使用 Docker Compose 可以轻松.高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 Docker 和 Compose兼容性看下图:          

有容云:实战总结之 利用Docker、Docker Compose &Rancher构建持续部署

前言: 本文由John Patterson . Chris Lunsford写于2016年4月4日,译者有容云张向波,转载请注明出处.(原文链接见文末) 作者John Patterson和Chris Lunsford 运营了一家提供运营和基础架构服务的公司,本文是他们给大家分享的内容:关于如何通过使用Docker.Docker-Compose和Rancher来实现容器部署落地. 我们想跟你一起从头开始体验整个过程,特别是之间遇到的一些痛点和所做的决策.目前,已经有许多的资源和工具可以与Docke

centos7 部署 docker compose

=============================================== 2019/4/10_第1次修改                       ccb_warlock =============================================== 将原先docker swarm的文章拆分后,我决定将docker compose的部署内容单独整理成文章,使得部署逻辑更清晰. docker compose是docker容器批量编排的工具,可以通过1个yml

docker环境安装及springboot+docker在idea上实现一键部署远程服务器

以下均是在虚拟机上操作的环境 一.docker安装 1.检查内核版本,必须是3.10及以上(docker要求centos系统的内核版本高于3.10) uname ‐r #如果系统版本较低,则使用yum update更新内核 2.安装docker yum install docker 3.输入y确认安装 4.启动docker [[email protected] ~]# systemctl start docker [[email protected] ~]# docker ‐v Docker v

Docker私有仓库部署和管理

Docker私有仓库部署和管理 本章结构: Harbor介绍 部署Harbor所依赖的Docker Compose服务 部署Harbor服务 Harbor日常操作管理 Harbor管理生命周期 Harbor介绍 Harbor是VMware公司开源的企业级Docker Registry项目 Harbor的优势 基于角色控制 基于镜像的复制策略 支持LDAP目录服务/AD域服务 图像删除和垃圾收集 图形UI(可以访问Web界面) 审计 RESTful API Harbor架构组成 Proxy: 通过

Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301 Docker Compose基本使用-使用Compose启动Tomcat为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080 Docker Compose部署项目到容器-基于Tomc

8天入门docker系列 —— 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署

原文:8天入门docker系列 -- 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署 这一篇继续完善webnotebook,如果你读过上一篇的内容,你应该知道怎么去挂载webnotebook日志和容器的远程访问,但是这些还远不够,webnotebook 总要和一些数据库打交道吧,比如说mysql,mongodb,redis,通常情况下这些存储设备要么是以容器的方式承载,要么是由DBA在非容器环境下统一管理. 一:webnotebook连接容器redis