前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原 基于Docker搭建Gitlab

原 基于Docker搭建Gitlab

作者头像
霡霂
发布2018-06-04 16:44:08
2.2K0
发布2018-06-04 16:44:08
举报
文章被收录于专栏:雨过天晴雨过天晴

安装Docker

代码语言:javascript
复制
curl -sSL https://get.docker.com/ | sh

安装Gitlab

代码语言:javascript
复制
sudo docker run --detach \
    --hostname gitlab.example.com \
    --publish 443:443 --publish 80:80 --publish 22:22 \
    --name gitlab \
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab \
    --volume /srv/gitlab/logs:/var/log/gitlab \
    --volume /srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

参数说明:

代码语言:javascript
复制
--hostname :设置主机名
--publish :将需要的端口开放(https:443,http:80,ssh:22)
--name :容器名称 方便后面操作
--volume :挂载目录
--detach :后台执行
--restart :容器遇到问题时重启

请注意 /srv/gitlab 目录所在位置,即内容保存位置,可在升级/迁移时不丢失数据。在配置目录时,请注意docker或者其组具有文件的执行写入等权限,如果遇到LinuxACL问题,请尝试 sudo setfacl -mR default:group:docker:rwx /srv/gitlab 修复

如果sshd 已经占用 22 端口,则需要变更 --publish 221:22,并同时配置gitlab_rails['gitlab_shell_ssh_port'] = 221

请注意更换主机名

启动容器后,可以通过sudo docker logs gitlab获得容器的控制台日志。

配置Gitlab

配置gitlab 有两种方法:第一种在启动docker是携带--env参数;第二种修改config下的gitlab.rb文件。

ENV参数

在启动docker时,携带--env环境变量GITLAB_OMNIBUS_CONFIG可以在镜像启动时加载配置信息,但不会写入gitlab.rb配置文件。

示例:

代码语言:javascript
复制
sudo docker run --detach \
    --hostname gitlab.example.com \
    --env GITLAB_OMNIBUS_CONFIG="external_url 'http://my.domain.com/';\r\ngitlab_rails['lfs_enabled'] = true;" \
    --publish 443:443 --publish 80:80 --publish 22:22 \
    --name gitlab \
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab \
    --volume /srv/gitlab/logs:/var/log/gitlab \
    --volume /srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:lates

--env GITLAB_OMNIBUS_CONFIG= 参数,后面的内容,为gitlab.rb中可配置内容,比如安装Gitlab时配置sshd端口

请注意更换external_url的域名

请注意:由于ENV是容器生成是写入的,所以重新start或者sudo docker restart gitlab 是无效的。

修改配置文件

修改挂载到/srv/gitlab/configgitlab.rb文件。

然后重启容器:

代码语言:javascript
复制
sudo docker restart gitlab

容器重新启动会重新加载配置文件,这里不同于--env配置

升级Gitlab到最新的版本

随着时间的迁移,gitlab会出现版本的更新(版本帝),在容器中我们并不方便对内部程序进行升级,然后我们却有着更方便的方法,重新更新镜像,生成容器。

因为配置文件或环境变量的配置是不随容器移除而丢失的,所以我们并需要重新配置(只更新镜像后重新生成容器即可。)

停止现有容器

代码语言:javascript
复制
sudo docker stop gitlab

如果在创建容器是没有设置--name字段,请通过docker ps获取容器id或名称,并将gitlab更换成对应的内容。 移除时同样如此!

移除现有容器

代码语言:javascript
复制
sudo docker rm gitlab

更新最新镜像

代码语言:javascript
复制
sudo docker pull gitlab/gitlab-ce:latest

再次创建容器

代码语言:javascript
复制
sudo docker run --detach \
    --hostname gitlab.example.com \
    --publish 443:443 --publish 80:80 --publish 22:22 \
    --name gitlab \
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab \
    --volume /srv/gitlab/logs:/var/log/gitlab \
    --volume /srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

为了保持配置的一致性,如果你是通过EVN的方式配置的,再次创建容器时,你仍应采用最初创建时一直的命令。

更新容器后,有机率会遇到500错误,请尝试sudo docker restart gitlab重启,如若仍有问题,请尝试修复权限:

代码语言:javascript
复制
sudo docker exec gitlab update-permissions
sudo docker restart gitlab

TODO

Gitlab Runners

docker-compose

链接

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装Docker
  • 安装Gitlab
  • 配置Gitlab
    • ENV参数
      • 修改配置文件
      • 升级Gitlab到最新的版本
        • 停止现有容器
          • 移除现有容器
            • 更新最新镜像
              • 再次创建容器
              • TODO
              • 链接
              相关产品与服务
              容器镜像服务
              容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档