下面给你一份**在 Docker 中部署和配置 Linux 版 GitLab(CE)**的实用指南,从基础部署到常见配置都有。
# Ubuntu 示例
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker
mkdir -p /srv/gitlab/{config,logs,data}
docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
启动后访问:http://服务器IP
首次登录账号:root
密码在:
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
docker-compose.ymlversion: '3.6'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: gitlab.example.com
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
ports:
- "80:80"
- "443:443"
- "2222:22"
volumes:
- /srv/gitlab/config:/etc/gitlab
- /srv/gitlab/logs:/var/log/gitlab
- /srv/gitlab/data:/var/opt/gitlab
docker-compose up -d
配置文件位置:
/srv/gitlab/config/gitlab.rb
修改后执行:
docker exec -it gitlab gitlab-ctl reconfigure
external_url 'http://192.168.1.100'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
docker exec -it gitlab gitlab-rake gitlab:backup:create
备份文件位置:
/srv/gitlab/data/backups/
docker exec -it gitlab gitlab-rake gitlab:backup:restore BACKUP=备份编号
prometheus['enable'] = false
ports 或 ssh_portdocker exec -it gitlab gitlab-rails console
user = User.where(id: 1).first
user.password = 'newpassword'
user.save!
如果你有具体需求(如 LDAP、邮件、CI/CD、反向代理 Nginx),可以告诉我,我可以给你定制配置。