使用Docker安装GitLab服务

安装的环境

  • CentosOS 7 3.10.0-862.14.4.el7.x86_64
  • 内存4G
  • cpu4核
  • Docker 18.09.0, build 4d60db4 安装教程

下载镜像

使用以下命令拉取远程镜像,默认标签为:latest

1
$ docker pull gitlab/gitlab-ce

更换SSH端口

下载镜像的同时先将sshd服务占用的22端口改成其他端口(这边举例25565 25566 ε=ε=ε=(~ ̄▽ ̄)~)
先修改配置文件

1
$ vi /etc/ssh/sshd_config

将其中的#Port 22改成Port 25566
然后,由于SELinux的原因还需要运行下面的命令25566 端口可以进行SSH连接
1
2
3
$ semanage port -a -t ssh_port_t -p tcp 25566
$ firewall-cmd --permanent --add-port=25566/tcp
$ firewall-cmd --reload

运行GitLab容器

因为Docker容器的数据如果没有保存的话,删除之后就会丢失,所以我们需要挂载相应的卷到容器内,先创建目录

1
$ mkdir /data/gitlab

创建GitLab的容器
1
2
3
4
5
6
7
8
docker run \
--publish 22:22 --publish 80:80 --publish 443:443 \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.initdeny.com/';" \
--name mygitlab \
-v /data/gitlab/conf:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
-d gitlab/gitlab-ce

  • --publish 端口:端口是将宿主机的端口映射到容器暴露的相应端口
  • --env 设置相应的环境变量,这边设置是解决此处的显示问题,不进行设置将会展示容器ID
  • -v将宿主机的目录挂载到容器的相应目录
  • -d以后台方式运行容器
  • --name 给容器命名

查看启动容器的运行状态

1
$ docker ps -a


STATUSUp就欧了

配置管理员密码

直接输入就行了[]~( ̄▽ ̄)~*

然后用户名root登陆

额外的配置

  1. 如果想要配置邮件服务器的话,要修改相应文件(我这以网易邮箱为例)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $ vi /data/gitlab/conf/gitlab.rb

    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.126.com"
    gitlab_rails['smtp_port'] = 25
    gitlab_rails['smtp_user_name'] = "[email protected]"
    gitlab_rails['smtp_password'] = "密码"
    gitlab_rails['smtp_domain'] = "126.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = false

    gitlab_rails['gitlab_email_from'] = '[email protected]'
    gitlab_rails['gitlab_email_display_name'] = '[email protected]'
    然后进入容器(mygitlab是容器名)
    1
    $ docker exec -it mygitlab /bin/bash
    运行
    1
    2
    $ gitlab-ctl reconfigure
    $ gitlab-ctl restart
    然后使用Ctrl+P然后再按Ctrl+Q进行退出终端
    Done!

    参考连接:

Author: Sean
Link: https://blog.whileaway.io/posts/56665/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.