部署docker-gitlab

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

  Gitlab的docker化,找了些资料,后来发现其实人们早就已经做好了,并且在github上就有。最近学到了一个思想,”不重复造轮子“, 我这里简单照着文档做下总结。

  GitLab是利用 Ruby on Rails 一个开源的版本管理系统,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

安装docker:

1
# wget -qO- https://get.docker.com/ | sh

安装docker-gitlab:

安装对应版本的gitlab镜像:

1
# docker pull sameersbn/gitlab:8.5.5

如果想安装最新版,使用:

1
# docker pull sameersbn/gitlab:latest

启动gitlab:

最快的启动方式是使用docker-compose

1
# wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml

yml文件里存放了相应服务的配置,可根据情况更改;可以使用如下命令生成一个64位是随机字符串,用于GITLAB_SECRETS_DB_KEY_BASE

1
2
# pwgen -Bsv1 64
qs7KxxMx3wrWpFMH3CxFpbnCNHPfxsxcgRTJcNMgjMJhwLfvmh4HrmwKc4mMcRc7
1
     - GITLAB_SECRETS_DB_KEY_BASE=qs7KxxMx3wrWpFMH3CxFpbnCNHPfxsxcgRTJcNMgjMJhwLfvmh4HrmwKc4mMcRc7

另外docker-gitlab默认使用/home/git/data这个目录用来存放提交上来的代码,我修改成了自己的路径:

1
2
volumes:
     /srv/docker/gitlab/gitlab : /data/code

启动gitlab,这个过程需要等待一段时间:

1
# docker-compose up



wKioL1bmLOuwP2wcAAGqLkq-Ouk972.png

wKiom1bmLGayZg90AAJjaBdgDuY925.png


执行完成之后查看启动结果:

1
2
3
4
5
root@gitlab:~ # docker ps -a 
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                                                   NAMES
aefaf4098b00        sameersbn /gitlab :8.5.5         "/sbin/entrypoint.sh "    13 hours ago        Up 13 hours         443 /tcp , 0.0.0.0:10022->22 /tcp , 0.0.0.0:10080->80 /tcp    root_gitlab_1
a8ed7a4dd879        sameersbn /postgresql :9.4-14    "/sbin/entrypoint.sh"     13 hours ago        Up 13 hours         5432 /tcp                                                 root_postgresql_1
a9e519dcb183        sameersbn /redis :latest         "/sbin/entrypoint.sh"     13 hours ago        Up 13 hours         6379 /tcp                                                 root_redis_1

如果不用docker-compose的方式,也可以手动 launch:

1、启动postgresql:

1
2
3
4
5
docker run --name gitlab-postgresql -d \
     -- env  'DB_NAME=gitlabhq_production'  \
     -- env  'DB_USER=gitlab'  -- env  'DB_PASS=password'  \
     --volume  /srv/docker/gitlab/postgresql : /var/lib/postgresql  \
     sameersbn /postgresql :9.4-14

2、启动redis:

1
2
3
docker run --name gitlab-redis -d \
     --volume  /srv/docker/gitlab/redis : /var/lib/redis  \
     sameersbn /redis :latest

3、启动gitlab:

1
2
3
4
5
6
7
docker run --name gitlab -d \
     --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
     --publish 10022:22 --publish 10080:80 \
     -- env  'GITLAB_PORT=10080'  -- env  'GITLAB_SSH_PORT=10022'  \
     -- env  'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string'  \
     --volume  /srv/docker/gitlab/gitlab : /home/git/data  \
     sameersbn /gitlab :8.5.5

上面的命令将使用10080作为Gitlab的Web访问端口,10022将作为ssh push和pull代码的端口。 在本地可以使用浏览器打开http://localhost:10080来访问Gitlab,初始登录网站使用root账户,用户名为root,密码为:5iveL!fe,登录后需要立即修改密码。

登陆:

http://localhost:10080

wKioL1bmVi6Slw8_AACm3Z5DaZU617.png登陆进去之后修改密码就可以进行项目管理了~

wKiom1bmfofCQdevAACNVtvq3_w606.png







      本文转自Jx战壕  51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1750968,如需转载请自行联系原作者



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
22天前
|
存储 测试技术 Linux
【Docker项目实战】使用Docker部署bender个人仪表板
【4月更文挑战第2天】使用Docker部署bender个人仪表板
33 1
|
1月前
|
存储 机器学习/深度学习 中间件
快速上手 Elasticsearch:Docker Compose 部署详解
本文介绍了如何使用Docker Compose快速搭建Elasticsearch学习环境。Elasticsearch是一款用于实时搜索和分析的分布式中间件,适用于多种场景,如搜索、日志分析、机器学习等。首先,创建docker网络,拉取最新版8.12.2镜像。接着,编写docker-compose.yml文件,配置单节点集群,设置端口映射、内存限制及数据卷挂载。然后,创建并配置数据卷目录,允许远程访问和跨域。最后,启动服务并验证,通过浏览器访问确认服务运行正常。本文为初学者提供了一个简便的Elasticsearch部署方法。
170 4
快速上手 Elasticsearch:Docker Compose 部署详解
|
23天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
95 0
|
1天前
|
测试技术 Linux Docker
【好玩的经典游戏】Docker部署FC-web游戏模拟器
【好玩的经典游戏】Docker部署FC-web游戏模拟器
14 1
|
2天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
30 1
|
5天前
|
存储 测试技术 文件存储
【Docker项目实战】使用Docker部署Sun-Panel导航面板
【4月更文挑战第19天】使用Docker部署Sun-Panel导航面板
54 7
|
8天前
|
测试技术 Linux 网络安全
【好玩的开源项目】使用Docker部署SyncTV视频同步和共享平台
【4月更文挑战第16天】使用Docker部署SyncTV视频同步和共享平台
49 1
|
12天前
|
测试技术 Linux 数据安全/隐私保护
【Docker项目实战】使用Docker部署Seatsurfing预订座位系统
【4月更文挑战第12天】使用Docker部署Seatsurfing预订座位系统
38 3
|
15天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
16天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
27 0