https://docs.gitlab.com/omnibus/docker/README.html#run-the-image
在这里讲
Centos 7
操作系统的两种方法安装:
<一>Docker安装:
https://docs.gitlab.com/omnibus/docker/README.html#run-the-image
(1:)docker search gitlab 首先搜索一下gitlab
docker.io docker.io/gitlab/gitlab-ce 结果中有这一条显示,则表示搜索到
(2:) docker pull gitlab/gitlab-ce 拉取这镜像,待拉取成功
(3:) docker images | grep gitlab-ce 查看本地是否有该镜像
(4:) 在一个run.sh文件中添加如下脚本内容
#!/bin/bash
docker run
--detach
\
--hostname
gitlab.example.com
\
--env
GITLAB_OMNIBUS_CONFIG
=
"external_url 'http://my.domain.com/'; gitlab_rails['lfs_enabled'] = true;"
\
--publish
443:443
--publish
80:80
\
--name
gitlab
\
--restart
always
\
--volume /srv/gitlab/config:/etc/gitlab
:Z
\
--volume /srv/gitlab/logs:/var/log/gitlab
:Z
\
--volume /srv/gitlab/data:/var/opt/gitlab
:Z
\
gitlab/gitlab-ce:latest
(1)
上面 脚本中,我们要注意红色字段,这里挂载宿主机目录到docker容器中。
/srv/gitlab/config
:
/etc/gitlab
:Z
其中
/srv/gitlab/config
指的是宿主机目录
,
/etc/gitlab
表示的是容器中的目录
:z 这个字符最关键,可以解决挂载目录时的权限问题
当你的centos 7系统执行如下命令结果如下时,如果不加
:z
时:
[root@localhost ~]# getenforce
Enforcing
测会出现权限问题,用
docker logs -f --tail=100 gitlab 命令查看容器的运行日志,会发现有
permission denied
(2)
上面 脚本中,
--publish
443
:443 表示暴露容器中的443端口到宿主机443端口,
这样可以通过配置 https访问gitlab
--publish
80
:80 表示暴露容器中的80端口到宿主机80端口,
这样可以通过80端口访问gitlab 如果我们的宿主机的80
端口被占用,可以换一个端口,
注意红色的80表示宿主机端口
(3)
设置外部访问的域名
http://my.domain.com/ 其中这个值,表示我们打算通过这个域名来访问gitlab.这里用域名而不
直接用ip的原因,是因为当服务器的ip发生变化。
我们就不能通过ip直接来访问了。如果设置成域名,那个我们可以通过域
名映射来解决这个问题,而不需要重新配置gitlab,如果我们没有申请
域名,我们可以通过修改hosts文件的映射来解决
比如:windows系统中的 hosts文件中添加
192.168.106.32 my.domain.com #这表示当我们在浏览器中输入
http://my.domain.com 时,等同于 http://192.168.106.32
如果容器不够内存,我们还可以指定内存用如下脚本
#!/bin/bash
curdir=$PWD
echo $curdir
docker run --detach \
--memory 3072M \
--memory-swap -1 \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com/'; gitlab_rails['lfs_enabled'] = true;" \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume ${curdir}/gitlab/config:/etc/gitlab:z \
--volume ${curdir}/gitlab/logs:/var/log/gitlab:z \
--volume ${curdir}/gitlab/data:/var/opt/gitlab:z \
gitlab/gitlab-ce:latest
上面的脚本中指定了:
外部访问域名为 gitlab.example.com.
容器可以用的最大内存 3072M 交换内存可以无限制
另外
gitlab_rails['lfs_enabled'] = true; 表示可以使用大文件存储,
另外 最重要的时我们指定了:
配置文件目录${curdir}/gitlab/config 在当前目录下创建gitlab/config,用于存储gitlab配置文件
日志文件目录${curdir}/gitlab/logs 日志
数据文件目录${curdir}/gitlab/data: 数据,方便后续代码迁移
如下图就是具体的目录情况:
<二>安装包安装:
https://about.gitlab.com/installation/#centos-7
sudo yum install -y curl policycoreutils-python openssh-serversudo systemctl enable sshdsudo systemctl start sshdsudo firewall-cmd --permanent --add-service=httpsudo systemctl reload firewalld
sudo yum install postfixsudo systemctl enable postfixsudo systemctl start postfix
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
参考网址:
https://docs.gitlab.com/omnibus/settings/configuration.html 配置信息
https://about.gitlab.com/installation/#centos-7 非容器安装
https://docs.gitlab.com/omnibus/docker/README.html#run-the-image docker安装
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/configuration.md#storing-git-data-in-an-alternative-directory