使用docker-compose搭建gitlab

简介

使用Docker搭建GitLab带来的好处。它简化了部署过程,将安装和配置整合为一个容器,并通过简单的命令即可启动和运行GitLab实例。Docker的隔离和容器化特性确保了GitLab与其依赖的软件环境的隔离,避免了冲突问题。此外,Docker的可移植性使得GitLab可以在不同平台和环境中运行,无需担心底层差异。通过配置文件和Docker Compose等工具,管理和扩展GitLab变得轻而易举。此外,借助Docker的版本控制和快速部署能力,GitLab的配置文件与应用代码一同被版本控制,简化了配置管理和快速部署。综上所述,使用Docker搭建GitLab提供了便捷的部署和管理方式,增强了可移植性和扩展性,并有效隔离了应用与其依赖环境。

安装

创建一个目录,例如gitlab-docker,在该目录下创建一个docker-compose.yml文件:

bash 复制代码
version: '3'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    environment:
      # GitLab配置设置
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://your-gitlab-domain.com'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        postgresql['shared_buffers'] = "256MB"
        unicorn['worker_timeout'] = 600
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        logging['svlogd_size'] = 100M  # 最大日志文件大小
        logging['svlogd_num'] = 3     # 最大日志文件数量
    ports:
      - "80:80"      # 将主机端口80映射到容器端口80
      - "2222:22"    # 将主机端口2222映射到容器端口22
    volumes:
      - /home/data/gitlab/config:/etc/gitlab   # 挂载主机配置目录到容器
      - /home/data/gitlab/logs:/var/log/gitlab  # 挂载主机日志目录到容器
      - /home/data/gitlab/data:/var/opt/gitlab  # 挂载主机数据目录到容器
    networks:
      - gitlab-network

networks:
  gitlab-network:
    driver: bridge

在这个配置文件中,我们指定了GitLab使用的Docker镜像,配置了一些基本的环境变量,设置了端口映射,挂载了数据卷,并限制了日志文件的大小和数量。请替换http://your-gitlab-domain.com为你的GitLab访问域名。
在/home/data/gitlab目录下创建一个gitlab-env文件,用于存储初始账号等信息:

bash 复制代码
touch /home/data/gitlab/gitlab-env

编辑/home/data/gitlab/gitlab-env文件,添加如下内容:

bash 复制代码
GITLAB_ROOT_PASSWORD=your_root_password
GITLAB_USERNAME=your_username
GITLAB_PASSWORD=your_password

替换your_root_password、your_username和your_password为你自己的值。
运行GitLab服务

bash 复制代码
docker-compose up -d

这将启动GitLab服务,并将数据存储在/home/data/gitlab目录下。
访问GitLab

通过浏览器访问设置的GitLab域名,初始化GitLab账号时,使用/home/data/gitlab/gitlab-env文件中定义的初始账号信息。注意:确保端口80和2222在防火墙中已经打开,并且域名解析指向正确的服务器IP地址。这样,就成功搭建了一个包含日志限制、挂载目录和初始账号设置的GitLab Docker服务。

相关推荐
程序员老赵13 小时前
Docker 部署 Wiki.js:轻松搭建私有化维基知识库
docker·容器·开源
灯澜忆梦14 小时前
【Docker】#5 | 网络配置
网络·docker·容器
刘胡子大叔15 小时前
docker build 跑了 92 分钟还是失败了
docker·容器
她说可以呀15 小时前
Docker 镜像的两种创建方式
java·分布式·docker
虎头金猫16 小时前
从上传PPT到观众远程打开互动页面:Claper在CentOS 7上的Docker部署、互动组件设置与固定访问地址实战
linux·运维·网络·人工智能·docker·centos·powerpoint
%KT%18 小时前
ubuntu系统部署docker
运维·docker·容器
十二同学啊18 小时前
Docker 容器化技术详解:镜像、容器、网络与应用部署设计
网络·docker·eureka
I'mChloe19 小时前
不再逐台装Docker:我用Ansible Playbook批量统一服务器环境
服务器·docker·ansible
江湖有缘19 小时前
Docker实战 | 使用Docker部署Readeck书签管理工具
java·docker·eureka
十二同学啊20 小时前
Python FastAPI 项目使用 Docker 部署并映射端口(完整教程)
python·docker·fastapi