GitLab是一个利用Ruby on Rails
开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找!
更多信息还请参考官网地址
使用Docker Compose安装GitLab
硬性要求
:主机内存>4G
随着Docker撰写您可以轻松配置、安装和升级基于Docker的GitLab安装:
1、安装Docker和Docker-compose
2、创建一个docker-compose.yml文件(或下载示例):
version: '3.6'
services:
gitlab:
image: 'gitlab/gitlab-ee:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
# Add any other gitlab.rb configuration here, each on its own line
# 您可以通过添加环境变量来预配置GitLab Docker映像GITLAB_OMNIBUS_CONFIG对接运行命令。
# 这个变量可以包含任何gitlab.rb设置,并在加载容器的gitlab.rb文件。此行为允许您配置外部GitLab URL,并从综合GitLab模板。
# 其中包含的设置GITLAB_OMNIBUS_CONFIG没有被写到gitlab.rb配置文件,并在加载时进行计算。
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
shm_size: '256m'
3、确保您位于与相同的目录中docker-compose.yml并启动GitLab:
docker-compose up -d
下面是另一个docker-compose.ymlGitLab在自定义HTTP和SSH端口上运行的示例。请注意GITLAB_OMNIBUS_CONFIG
变量与ports
部分:
version: '3.6'
services:
gitlab:
image: 'gitlab/gitlab-ee:latest'
restart: always
hostname: 'gitlab'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.235.20:8929' #若有域名可以写域名
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8929:8929'
- '2224:22'
volumes:
- './config:/etc/gitlab' #配置文件
- './logs:/var/log/gitlab' #日志
- './data:/var/opt/gitlab' #数据
shm_size: '256m'
初始化过程可能需要很长时间。您可以通过以下方式跟踪此流程:
sudo docker logs -f gitlab
启动容器后,Docker容器开始响应查询可能需要一段时间。
访问GitLab URL,并使用用户名登录root以及来自以下命令的密码:
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
密码文件将在24小时后的第一次重新配置运行中自动删除。
在不同的端口上公开GitLab
GitLab会占用容器内部的一些端口。
如果您想使用不同于80 (HTTP)或443 (HTTPS)的主机端口,您需要在docker run命令中添加一个单独的--publish
指令。
例如,要公开主机端口8929上的web接口和端口2289上的SSH服务:
1.使用以下docker运行命令:
sudo docker run --detach \
--hostname gitlab \
--publish 8929:8929 --publish 2289:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ee:latest
发布端口的格式为hostPort:containerPort。
2.输入运行容器:
sudo docker exec -it gitlab /bin/bash
3.用编辑器打开/etc/gitlab/gitlab.rb,设置external_url:
# For HTTP
external_url "http://IP或域名:8929"
or
# For HTTPS (notice the https)
external_url "https://IP或域名:8929"
此URL中指定的端口必须与Docker发布给主机的端口相匹配。此外,如果NGINX监听端口没有在nginx['listen_port']
中明确设置,它将从external_url中提取。有关更多信息,请参见NGINX文档。
4.设置gitlab_shell_ssh_port:
gitlab_rails['gitlab_shell_ssh_port'] = 2289
5.最后,重新配置GitLab
gitlab-ctl reconfigure
按照上面的例子,您将能够从< hostIP>:8929下的web浏览器访问GitLab,并在端口2289下使用SSH进行推送。 使用不同端口的docker-compose.yml示例可以在Docker compose部分找到。
How long do you want to keep this up?