Jetson TX2安装Docker版GitLab
TIP
进行安装前,需要先更新Docker
使用Dockerfile构建Arm64 Docker镜像
由于GitLab官方并没有提供Arm64版本的Docker镜像,所以需要自己构建。 项目地址:https://github.com/zengxs/gitlab-arm64.git
如果在国内,需要先手下载你要安装gitlab对应版的deb包,deb包下载目录:https://packages.gitlab.com/app/gitlab/gitlab-ce。本教程使用的是 https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/noble/gitlab-ce_18.0.1-ce.0_arm64.deb/download.deb。
把deb包放到文件服务器中,确保Jetsom TX2能正常下载。
克隆项目到本地
创建一个文件夹,并进入:
$ mkdir ~/workspace
$ cd workspace
```bash
$ git clone https://github.com/zengxs/gitlab-arm64.git
$ cd gitlab-arm64编辑download-package文件:
$ vi assets/download-package在 echo "Downloading package as artifact - ${DOWNLOAD_URL}" 前添加DOWNLOAD_URL,其值为你文件服务器上的gitlab文件地址:
#!/bin/bash
DOWNLOAD_URL=http://192.168.1.3/gitlab-ce_17.11.3-ce.0_arm64.deb # [!foucus code]
echo "Downloading package as artifact - ${DOWNLOAD_URL}"
wget --quiet --header "JOB-TOKEN: ${CI_JOB_TOKEN}" ${DOWNLOAD_URL} -O /tmp/gitlab.deb
results=$?
if [ ${results} -ne 0 ]; then
>&2 echo "There was an error downloading ${DOWNLOAD_URL}. Please check the output for more information"
exit ${results}
fi开始构建
$ docker build . -t gitlab-ce:18.0.1-ce.0 --build-arg RELEASE_PACKAGE=gitlab-ce --build-arg RELEASE_VERSION=18.0.1-ce.0NOTE
注意修改命令中的-t、RELEASE_PACKAGE和RELEASE_VERSION对应的参数。如果要构建ee版本,还需要将ee改为ce。企业需要的硬件资源太高,所以这里只构建ce版本。
完成构建后,查看:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gitlab-ce 18.0.1-ce.0 33a108fb5779 1 hours ago 3.64GBNOTE
构建完成后,还可以使用上传到镜像仓库中,以便后续使用。
启动GitLab容器
详细参见:Docker容器中安装GitLab
创建文件夹:
$ mkdir /srv/gitlab/config
$ mkdir /srv/gitlab/logs
$ mkdir /srv/gitlab/data创建文件夹并进入:
$ mkdir ~/workspace/gitlab-compose
$ cd ~/workspace/gitlab-compose创建docker-compose.yml文件:
$ cat > docker-compose.yml << EOF
version: '3.6'
services:
gitlab:
image: gitlab-ce:18.0.1-ce.0
container_name: gitlab
restart: unless-stopped
hostname: 'gitlab'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.1.5:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2424
ports:
- '8929:8929'
- '2424:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
EOFNOTE
注意修改成自己需要的配置
启动容器:
$ docker-compose up -d查看运行状态:
$ docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
gitlab gitlab-ce:18.0.1-ce.0 "/assets/init-contai…" gitlab 1 hours ago Up 1 hours (healthy) 80/tcp, 443/tcp, 0.0.0.0:8929->8929/tcp, [::]:8929->8929/tcp, 0.0.0.0:2424->22/tcp, [::]:2424->22/tcp等到STATUS对应的状态由staring变为healthy,则表示安装成功。否则重新启动容器,直到运行成功。
WARNING
多次启动不成功,请查看日志。
访问GitLab
在浏览器中打开http://192.168.1.5:8929,即可访问GitLab。用户名密码为root,密码获取方式:
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password如果登录失败,处理见这里。
优化GitLab性能
通过puma 优化性能
详细配置见这里。进入GitLab容器:
bash$ sudo docker exec -it gitlab bash编辑
/etc/gitlab/gitlab.rb文件:bashroot@gitlab:# vi /etc/gitlab/gitlab.rb修改下面的选项对应的值:
rubypuma['per_worker_max_memory_mb'] = 1024 # 1GB gitlab_rails['env'] = { 'GITLAB_RAILS_RACK_TIMEOUT' => 600 } puma['enable'] = true puma['worker_processes'] = 1 puma['worker_timeout'] = 60 puma['min_threads'] = 2 puma['max_threads'] = 2重新启动GitLab服务:
bashroot@gitlab:# sudo gitlab-ctl reconfigure禁用service ping
详细配置见这里 进入GitLab容器:bash$ sudo docker exec -it gitlab bash编辑
/etc/gitlab/gitlab.rb文件:bashroot@gitlab:# vi /etc/gitlab/gitlab.rb修改配置:
rubygitlab_rails['usage_ping_enabled'] = false重新启动GitLab服务:
bashroot@gitlab:# sudo gitlab-ctl reconfigure
问题处理
root密码错误
进入 Docker 容器
bash$ sudo docker exec -it gitlab bash连接到 GitLab 数据库
bashroot@gitlab:/# gitlab-rails console -e production查找用户并重置密码
bashroot@gitlab:/# user = User.find_by_username 'root' root@gitlab:/# user.password = '新密码' root@gitlab:/# user.password_confirmation = '新密码' root@gitlab:/# user.save!退出控制台并重启 GitLab
bashroot@gitlab:/# exit root@gitlab:/# gitlab-ctl restart
登录报422
首先确认登录用户名密码正确
- 清理浏览器缓存或用新的浏览器登录
- 同步本地电脑时间和服务器时间为授时服务器时间