Docker搭建GitLab

在虚拟机cent OS 7上安装docker

可以参考:https://www.runoob.com/docker/centos-docker-install.html

查看当前的内核版本

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

[root@cc ~]# uname -r 
3.10.0-957.el7.x86_64

安装 Docker

从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。

Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。

本文介绍 Docker CE 的安装使用。

移除旧的版本:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
[root@cc ~]# sudo yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-selinux \
>                   docker-engine-selinux \
>                   docker-engine
已加载插件:fastestmirror, langpacks
参数 docker 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-selinux 没有匹配
参数 docker-engine-selinux 没有匹配
参数 docker-engine 没有匹配
不删除任何软件包
[root@cc ~]# 

安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:

sudo yum makecache fast

安装 Docker-ce:

sudo yum -y install docker-ce

启动 Docker 后台服务

sudo systemctl start docker

测试运行 hello-world

docker run hello-world

在这里插入图片描述

查看docker 版本

[root@cc ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:21:07 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89
  Built:            Thu Jul 25 21:19:36 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
[root@cc ~]# 

安装Gitlab

接下来我们就开始我们的重头戏,在docker中安装gitlab。

在docker中安装gitlab的方式有两种,一种是直接用官方提供的gitlab镜像gitlab/gitlab-ce,只需要这一个镜像就能使用 GitLab。这种安装方式也比较简单便捷。
具体的安装步骤可以去官网看看:https://docs.gitlab.com/ee/install/docker.html 或者网上也有很多教程:https://juejin.im/post/5a4c9ff36fb9a04507700fcc ,这里我就不多介绍了。

但是我更加推荐使用sameersbn 提供的sameersbn/gitlab,它将GitLab 分成了三个不同的镜像:数据库、日志、GitLab 服务,这样做的好处便于解耦,以及符合 Docker 的设计原理:轻量级、单一的镜像功能。在此,我们使用sameersbn/gitlab,并结合提供的 Docker Compose 文件来启动 GitLab。
我们可以参考它的github:https://github.com/sameersbn/docker-gitlab

所以本文介绍的就是通过sameersbn 提供的sameersbn/gitlab去安装gitlab。

安装docker-compose

首先执行以下命令

[root@cc ~]# docker-compose
-bash: docker-compose: 未找到命令

可以发现我们没有安装 docker-compose,所以我们可以参考官网 https://docs.docker.com/compose/install/

在这里插入图片描述

然后我们根据官网去安装。

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
[root@cc ~]# docker-compose --version
docker-compose version 1.24.1, build 4667896b

然后我们的docker-compose就安装完成了。

下载docker-compose.yml

下载docker-compose.yml文件下载到本机,参考https://github.com/sameersbn/docker-gitlab 中的Quick Start,我们下载这个文件。

wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml

在这里插入图片描述

启动gitlab

docker-compose up
[root@cc ~]# docker-compose up
Creating network "root_default" with the default driver
Pulling redis (sameersbn/redis:4.0.9-2)...
4.0.9-2: Pulling from sameersbn/redis
84ed7d2f608f: Pull complete
be2bf1c4a48d: Pull complete
a5bdc6303093: Pull complete
e9055237d68d: Pull complete
4dd2cea14658: Pull complete
f8fc4c3c626c: Pull complete
Digest: sha256:959ce87c35a2c2277ba34021b5e1f3139ccdd8a0d40a13cf71e4ac500a0c2070
Status: Downloaded newer image for sameersbn/redis:4.0.9-2
Pulling postgresql (sameersbn/postgresql:10-2)...
10-2: Pulling from sameersbn/postgresql
5b7339215d1d: Pull complete
14ca88e9f672: Pull complete
a31c3b1caad4: Pull complete
b054a26005b7: Pull complete
5f6e1c365669: Pull complete
979542228097: Pull complete
528cc46fecb1: Pull complete
d5bfe52148d6: Pull complete
0e9edf9b0470: Pull complete
73a0cb75af02: Pull complete
Digest: sha256:eb92661187f61289e6ce287774c2e4933149a5d7ab4f35302be609c620746a4d
Status: Downloaded newer image for sameersbn/postgresql:10-2
Pulling gitlab (sameersbn/gitlab:12.0.4)...
12.0.4: Pulling from sameersbn/gitlab
34667c7e4631: Pull complete
d18d76a881a4: Pull complete
119c7358fbfc: Pull complete
2aaf13f3eff0: Pull complete
528402de3115: Pull complete
6bde7bd62c81: Pull complete
d42b0464084a: Pull complete
54e2034f3464: Pull complete
c7f6f9e9642a: Pull complete
Digest: sha256:0b9b73b896de60a065c91aa1e589700752d03230d47dd9cc698e9be900c1a94b
Status: Downloaded newer image for sameersbn/gitlab:12.0.4
Creating root_redis_1      ... done
Creating root_postgresql_1 ... done
Creating root_gitlab_1     ... done
Attaching to root_redis_1, root_postgresql_1, root_gitlab_1
redis_1       | Starting redis-server...
redis_1       | 1:C 11 Aug 05:38:38.141 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1       | 1:C 11 Aug 05:38:38.141 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=1, just started
redis_1       | 1:C 11 Aug 05:38:38.141 # Configuration loaded
redis_1       | 1:M 11 Aug 05:38:38.146 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1       | 1:M 11 Aug 05:38:38.146 # Server initialized
redis_1       | 1:M 11 Aug 05:38:38.147 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_1       | 1:M 11 Aug 05:38:38.148 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
postgresql_1  | Initializing datadir...
postgresql_1  | Initializing certdir...
postgresql_1  | Initializing logdir...
postgresql_1  | Initializing rundir...
postgresql_1  | Setting resolv.conf ACLs...
postgresql_1  | Initializing database...
gitlab_1      | Loading /etc/docker-gitlab/runtime/env-defaults
gitlab_1      | Initializing logdir...
gitlab_1      | Initializing datadir...
gitlab_1      | Generating OpenSSH host keys... RSA DSA ECDSA ED25519 
gitlab_1      | Installing configuration templates...
gitlab_1      | Configuring gitlab...
postgresql_1  | Configuring hot standby...
postgresql_1  | ‣ Setting postgresql.conf parameter: wal_level = 'hot_standby'
postgresql_1  | ‣ Setting postgresql.conf parameter: max_wal_senders = '16'
postgresql_1  | ‣ Setting postgresql.conf parameter: checkpoint_segments = '8'
postgresql_1  | ‣ Setting postgresql.conf parameter: wal_keep_segments = '32'
postgresql_1  | ‣ Setting postgresql.conf parameter: hot_standby = 'on'
postgresql_1  | ‣ Setting postgresql.conf parameter: data_directory = '/var/lib/postgresql/10/main'
postgresql_1  | ‣ Setting postgresql.conf parameter: log_directory = '/var/log/postgresql'
postgresql_1  | ‣ Setting postgresql.conf parameter: log_filename = 'postgresql-10-main.log'
postgresql_1  | ‣ Setting postgresql.conf parameter: ssl = 'off'
postgresql_1  | Creating database user: gitlab
postgresql_1  | Creating database: gitlabhq_production...
postgresql_1  | ‣ Loading pg_trgm extension...
postgresql_1  | ‣ Granting access to gitlab user...
postgresql_1  | Starting PostgreSQL 10...
postgresql_1  | 2019-08-11 05:38:47.700 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
postgresql_1  | 2019-08-11 05:38:47.700 UTC [1] LOG:  listening on IPv6 address "::", port 5432
postgresql_1  | 2019-08-11 05:38:47.701 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgresql_1  | 2019-08-11 05:38:47.719 UTC [208] LOG:  database system was shut down at 2019-08-11 05:38:47 UTC
postgresql_1  | 2019-08-11 05:38:47.727 UTC [1] LOG:  database system is ready to accept connections
gitlab_1      | Configuring gitlab::database...
gitlab_1      | Configuring gitlab::redis
gitlab_1      | Configuring gitlab::secrets...
gitlab_1      | Configuring gitlab::sidekiq...
gitlab_1      | Configuring gitlab::gitaly...
gitlab_1      | Configuring gitlab::monitoring...
gitlab_1      | Configuring gitlab::gitlab-workhorse...
gitlab_1      | Configuring gitlab::unicorn...
gitlab_1      | Configuring gitlab::timezone...
gitlab_1      | Configuring gitlab::rack_attack...
gitlab_1      | Configuring gitlab::ci...
gitlab_1      | Configuring gitlab::artifacts...
gitlab_1      | Configuring gitlab::lfs...
gitlab_1      | Configuring gitlab::uploads...
gitlab_1      | Configuring gitlab::mattermost...
gitlab_1      | Configuring gitlab::project_features...
gitlab_1      | Configuring gitlab::oauth...
gitlab_1      | Configuring gitlab::ldap...
gitlab_1      | Configuring gitlab::cron_jobs...
gitlab_1      | Configuring gitlab::backups...
gitlab_1      | Configuring gitlab::backups::schedule...
gitlab_1      | Configuring gitlab::registry...
gitlab_1      | Configuring gitlab::pages...
gitlab_1      | Configuring gitlab-shell...
gitlab_1      | Configuring nginx...
gitlab_1      | Configuring nginx::gitlab...
gitlab_1      | Setting up GitLab for firstrun. Please be patient, this could take a while...
gitlab_1      | 2019-08-11 11:08:51,340 CRIT Supervisor running as root (no user in config file)
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/gitaly.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/gitlab-workhorse.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/groups.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/mail_room.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/nginx.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/sidekiq.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/sshd.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,340 WARN Included extra file "/etc/supervisor/conf.d/unicorn.conf" during parsing
gitlab_1      | 2019-08-11 11:08:51,386 INFO RPC interface 'supervisor' initialized
gitlab_1      | 2019-08-11 11:08:51,386 CRIT Server 'unix_http_server' running without any HTTP authentication checking
gitlab_1      | 2019-08-11 11:08:51,387 INFO supervisord started with pid 586
gitlab_1      | 2019-08-11 11:08:52,390 INFO spawned: 'gitaly' with pid 600
gitlab_1      | 2019-08-11 11:08:52,392 INFO spawned: 'gitlab-workhorse' with pid 601
gitlab_1      | 2019-08-11 11:08:52,395 INFO spawned: 'unicorn' with pid 602
gitlab_1      | 2019-08-11 11:08:52,397 INFO spawned: 'sidekiq' with pid 603
gitlab_1      | 2019-08-11 11:08:52,401 INFO spawned: 'nginx' with pid 604
gitlab_1      | 2019-08-11 11:08:52,404 INFO spawned: 'sshd' with pid 605
gitlab_1      | 2019-08-11 11:08:52,415 INFO spawned: 'cron' with pid 606
gitlab_1      | 2019-08-11 11:08:53,524 INFO success: gitaly entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:08:53,524 INFO success: gitlab-workhorse entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:08:53,524 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:08:53,524 INFO success: sidekiq entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:08:53,524 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:08:53,524 INFO success: sshd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:08:53,524 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
postgresql_1  | 2019-08-11 05:39:21.944 UTC [218] ERROR:  relation "feature_gates" does not exist at character 566
postgresql_1  | 2019-08-11 05:39:21.944 UTC [218] STATEMENT:                SELECT a.attname, format_type(a.atttypid, a.atttypmod),
postgresql_1  |                              pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
postgresql_1  |                              c.collname, col_description(a.attrelid, a.attnum) AS comment
postgresql_1  |                         FROM pg_attribute a
postgresql_1  |                         LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
postgresql_1  |                         LEFT JOIN pg_type t ON a.atttypid = t.oid
postgresql_1  |                         LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
postgresql_1  |                        WHERE a.attrelid = '"feature_gates"'::regclass
postgresql_1  |                          AND a.attnum > 0 AND NOT a.attisdropped
postgresql_1  |                        ORDER BY a.attnum
postgresql_1  | 
postgresql_1  | 2019-08-11 05:39:22.181 UTC [219] ERROR:  relation "feature_gates" does not exist at character 566
postgresql_1  | 2019-08-11 05:39:22.181 UTC [219] STATEMENT:                SELECT a.attname, format_type(a.atttypid, a.atttypmod),
postgresql_1  |                              pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
postgresql_1  |                              c.collname, col_description(a.attrelid, a.attnum) AS comment
postgresql_1  |                         FROM pg_attribute a
postgresql_1  |                         LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
postgresql_1  |                         LEFT JOIN pg_type t ON a.atttypid = t.oid
postgresql_1  |                         LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
postgresql_1  |                        WHERE a.attrelid = '"feature_gates"'::regclass
postgresql_1  |                          AND a.attnum > 0 AND NOT a.attisdropped
postgresql_1  |                        ORDER BY a.attnum
postgresql_1  | 
postgresql_1  | 2019-08-11 05:39:23.699 UTC [220] ERROR:  relation "feature_gates" does not exist at character 566
postgresql_1  | 2019-08-11 05:39:23.699 UTC [220] STATEMENT:                SELECT a.attname, format_type(a.atttypid, a.atttypmod),
postgresql_1  |                              pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
postgresql_1  |                              c.collname, col_description(a.attrelid, a.attnum) AS comment
postgresql_1  |                         FROM pg_attribute a
postgresql_1  |                         LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
postgresql_1  |                         LEFT JOIN pg_type t ON a.atttypid = t.oid
postgresql_1  |                         LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
postgresql_1  |                        WHERE a.attrelid = '"feature_gates"'::regclass
postgresql_1  |                          AND a.attnum > 0 AND NOT a.attisdropped
postgresql_1  |                        ORDER BY a.attnum
postgresql_1  | 
postgresql_1  | 2019-08-11 05:39:28.120 UTC [223] ERROR:  database "gitlabhq_production" already exists
postgresql_1  | 2019-08-11 05:39:28.120 UTC [223] STATEMENT:  CREATE DATABASE "gitlabhq_production" ENCODING = 'unicode'
gitlab_1      | Database 'gitlabhq_production' already exists
gitlab_1      | Migrating database...
gitlab_1      | Clearing cache...
gitlab_1      | 2019-08-11 11:10:39,810 WARN received SIGTERM indicating exit request
gitlab_1      | 2019-08-11 11:10:39,810 INFO waiting for gitaly, gitlab-workhorse, unicorn, sidekiq, nginx, sshd, cron to die
gitlab_1      | 2019-08-11 11:10:39,814 INFO stopped: cron (terminated by SIGTERM)
gitlab_1      | 2019-08-11 11:10:39,816 INFO stopped: sshd (exit status 0)
gitlab_1      | 2019-08-11 11:10:39,824 INFO stopped: nginx (exit status 0)
gitlab_1      | 2019-08-11 11:10:42,393 INFO stopped: sidekiq (exit status 0)
gitlab_1      | 2019-08-11 11:10:42,414 INFO stopped: gitlab-workhorse (terminated by SIGTERM)
gitlab_1      | 2019-08-11 11:10:43,062 INFO stopped: unicorn (exit status 0)
gitlab_1      | 2019-08-11 11:10:43,062 INFO waiting for gitaly to die
gitlab_1      | 2019-08-11 11:10:43,080 INFO stopped: gitaly (exit status 0)
gitlab_1      | 2019-08-11 11:10:43,323 CRIT Supervisor running as root (no user in config file)
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/gitaly.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/gitlab-workhorse.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/groups.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/mail_room.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/nginx.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/sidekiq.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/sshd.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,323 WARN Included extra file "/etc/supervisor/conf.d/unicorn.conf" during parsing
gitlab_1      | 2019-08-11 11:10:43,335 INFO RPC interface 'supervisor' initialized
gitlab_1      | 2019-08-11 11:10:43,335 CRIT Server 'unix_http_server' running without any HTTP authentication checking
gitlab_1      | 2019-08-11 11:10:43,336 INFO supervisord started with pid 1
gitlab_1      | 2019-08-11 11:10:44,339 INFO spawned: 'gitaly' with pid 807
gitlab_1      | 2019-08-11 11:10:44,341 INFO spawned: 'gitlab-workhorse' with pid 808
gitlab_1      | 2019-08-11 11:10:44,344 INFO spawned: 'unicorn' with pid 809
gitlab_1      | 2019-08-11 11:10:44,361 INFO spawned: 'sidekiq' with pid 813
gitlab_1      | 2019-08-11 11:10:44,363 INFO spawned: 'nginx' with pid 814
gitlab_1      | 2019-08-11 11:10:44,365 INFO spawned: 'sshd' with pid 815
gitlab_1      | 2019-08-11 11:10:44,370 INFO spawned: 'cron' with pid 817
gitlab_1      | 2019-08-11 11:10:45,450 INFO success: gitaly entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:10:45,451 INFO success: gitlab-workhorse entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:10:45,451 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:10:45,451 INFO success: sidekiq entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:10:45,451 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:10:45,451 INFO success: sshd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
gitlab_1      | 2019-08-11 11:10:45,451 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

登录Gitlab

下载完成后,在浏览器输入虚拟机IP地址+端口10080,出现gitlab页面则启动成功

在这里插入图片描述

进来修改root用户的密码,之后就可以用root的用户名和密码去登录了。

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐