赞
踩
在现代软件开发中,版本控制系统(VCS)是不可或缺的工具,它们帮助开发团队管理代码库,跟踪更改,并协作开发项目。Git 是一种流行的分布式版本控制系统,而 GitLab 是一个开源的 Git 仓库管理工具,提供了强大的功能,包括代码评审、CI/CD、问题跟踪等。本文将介绍如何在自己的服务器上搭建一个 GitLab 实例,并创建属于自己的 Git 仓库。
GitLab 是一个基于 Git 的开源平台,提供了代码仓库管理、CI/CD(持续集成和持续交付)、代码审查、问题跟踪和项目管理等功能。GitLab 有社区版(GitLab CE)和企业版(GitLab EE),社区版是免费的,企业版提供了更多高级功能。
在开始之前,确保你有以下准备工作:
一台运行 Linux(如 Ubuntu 或 CentOS)的服务器。
具有 sudo 权限的用户。
已安装 Docker 和 Docker Compose(可选,用于简化 GitLab 安装)。
如果你的服务器尚未安装 Docker,可以参照文章:在CentOS中安装Docker
也可以使用下面命令快速安装:
# 更新包索引 sudo apt update # 安装必要的软件包 sudo apt install apt-transport-https ca-certificates curl software-properties-common # 添加 Docker 官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加 Docker APT 软件源 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 更新包索引 sudo apt update # 安装 Docker sudo apt install docker-ce # 启动并启用 Docker 服务 sudo systemctl start docker sudo systemctl enable docker
使用docker compose在docker环境下快速部署:
搭建docker compose环境参考文章:docker compose快速安装
学习docker compose参考文章(本篇博客不需要,只是推荐学习)DockerCompose(初识、安装、部署) Docker Compose 命令说明文档
docker-compose.yaml
文件链接:https://github.com/sameersbn/docker-gitlab/blob/master/docker-compose.yml
可以点击下载,也可以新建docker-compose.yaml
文件,将内容复制粘贴。
也可以直接复制(但是建议从官网下载,可能版本会更新之类的):
version: '2.3' services: redis: restart: always image: redis:6.2 command: - --loglevel warning volumes: - redis-data:/data:Z postgresql: restart: always image: sameersbn/postgresql:14-20230628 volumes: - postgresql-data:/var/lib/postgresql:Z environment: - DB_USER=gitlab - DB_PASS=password - DB_NAME=gitlabhq_production - DB_EXTENSION=pg_trgm,btree_gist gitlab: restart: always image: sameersbn/gitlab:17.0.0 depends_on: - redis - postgresql ports: - "10080:80" - "10022:22" volumes: - gitlab-data:/home/git/data:Z healthcheck: test: ["CMD", "/usr/local/sbin/healthcheck"] interval: 5m timeout: 10s retries: 3 start_period: 5m environment: - DEBUG=false - DB_ADAPTER=postgresql - DB_HOST=postgresql - DB_PORT=5432 - DB_USER=gitlab - DB_PASS=password - DB_NAME=gitlabhq_production - REDIS_HOST=redis - REDIS_PORT=6379 - TZ=Asia/Kolkata - GITLAB_TIMEZONE=Kolkata - GITLAB_HTTPS=false - SSL_SELF_SIGNED=false - GITLAB_HOST= - GITLAB_PORT=10080 - GITLAB_SSH_PORT=10022 - GITLAB_RELATIVE_URL_ROOT= - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_ROOT_PASSWORD= - GITLAB_ROOT_EMAIL= - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true - GITLAB_NOTIFY_PUSHER=false - GITLAB_EMAIL=notifications@example.com - GITLAB_EMAIL_REPLY_TO=noreply@example.com - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com - GITLAB_BACKUP_SCHEDULE=daily - GITLAB_BACKUP_TIME=01:00 - SMTP_ENABLED=false - SMTP_DOMAIN=www.example.com - SMTP_HOST=smtp.gmail.com - SMTP_PORT=587 - SMTP_USER=mailer@example.com - SMTP_PASS=password - SMTP_STARTTLS=true - SMTP_AUTHENTICATION=login - IMAP_ENABLED=false - IMAP_HOST=imap.gmail.com - IMAP_PORT=993 - IMAP_USER=mailer@example.com - IMAP_PASS=password - IMAP_SSL=true - IMAP_STARTTLS=false - OAUTH_ENABLED=false - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER= - OAUTH_ALLOW_SSO= - OAUTH_BLOCK_AUTO_CREATED_USERS=true - OAUTH_AUTO_LINK_LDAP_USER=false - OAUTH_AUTO_LINK_SAML_USER=false - OAUTH_EXTERNAL_PROVIDERS= - OAUTH_CAS3_LABEL=cas3 - OAUTH_CAS3_SERVER= - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false - OAUTH_CAS3_LOGIN_URL=/cas/login - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate - OAUTH_CAS3_LOGOUT_URL=/cas/logout - OAUTH_GOOGLE_API_KEY= - OAUTH_GOOGLE_APP_SECRET= - OAUTH_GOOGLE_RESTRICT_DOMAIN= - OAUTH_FACEBOOK_API_KEY= - OAUTH_FACEBOOK_APP_SECRET= - OAUTH_TWITTER_API_KEY= - OAUTH_TWITTER_APP_SECRET= - OAUTH_GITHUB_API_KEY= - OAUTH_GITHUB_APP_SECRET= - OAUTH_GITHUB_URL= - OAUTH_GITHUB_VERIFY_SSL= - OAUTH_GITLAB_API_KEY= - OAUTH_GITLAB_APP_SECRET= - OAUTH_BITBUCKET_API_KEY= - OAUTH_BITBUCKET_APP_SECRET= - OAUTH_BITBUCKET_URL= - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL= - OAUTH_SAML_IDP_CERT_FINGERPRINT= - OAUTH_SAML_IDP_SSO_TARGET_URL= - OAUTH_SAML_ISSUER= - OAUTH_SAML_LABEL="Our SAML Provider" - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient - OAUTH_SAML_GROUPS_ATTRIBUTE= - OAUTH_SAML_EXTERNAL_GROUPS= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME= - OAUTH_CROWD_SERVER_URL= - OAUTH_CROWD_APP_NAME= - OAUTH_CROWD_APP_PASSWORD= - OAUTH_AUTH0_CLIENT_ID= - OAUTH_AUTH0_CLIENT_SECRET= - OAUTH_AUTH0_DOMAIN= - OAUTH_AUTH0_SCOPE= - OAUTH_AZURE_API_KEY= - OAUTH_AZURE_API_SECRET= - OAUTH_AZURE_TENANT_ID= volumes: redis-data: postgresql-data: gitlab-data:
打开编辑文件内容:
新建文件夹:
mkdir /home/gitlab
上传文件docker-compose.yaml
,也可以新建文件,将内容粘贴过去。
启动docker compose
docker-compose up -d
使用docker ps命令可以看见新增的三个docker容器:
浏览器访问:http://192.168.200.128:80即可进入GitLab的页面。
按理来说我用GitLab来整合Jenkins,但是服务器资源受限,没有配置成功,我换成了github来演示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。