3.docker下载安装配置gitlab、遇到问题全记录

1.拉取镜像

docker pull gitlab/gitlab-ce

解释:gitlab-ce为稳定版本,如果没指定版本则默认pull最新latest版本。

2.运行镜像

docker run --detach --hostname localhost --publish 443:443 --publish 9999:80 --publish 222:22 --name gitlab --restart always --volume /Users/Shared/docker/gitlab/config:/etc/gitlab --volume /Users/Shared/docker/gitlab/log:/var/log/gitlab --volume /Users/Shared/docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

解释:运行gitlab/gitlab-ce:latest镜像,配置项如下

  • –detach:后台运行,如果去掉,会看到执行的整个过程日志。

  • –hostname:指定运行的 hostname,可以是域名也可以是 IP。

  • –publish:端口的映射,可以缩写成 -p 443, 用于 HTTPS 协议访问,222 用户 SSH 协议访问。9999映射80端口。

  • –name:容器的名称。

  • –volume:指定本地卷,配置、日志、数据。可以缩写为-v,使用本地卷后,删除容器,不会删除配置、数据。

  • –restart:重启的方式,会自动重启,共有五种策略:

     no:默认策略,在容器退出时不重启容器
     on-failure:在容器非正常退出时(退出状态非 0),才会重启容器
     on-failure:3:在容器非正常退出时重启容器,最多重启 3 次
     always:在容器退出时总是重启容器
     unless-stopped:在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器
    

3.查看gitlab初始密码

docker exec -it f10 grep 'Password:' /etc/gitlab/initial_root_password
解释:f10 是gitlab的容器id

4. 修改默认的初始密码

docker exec -it f10 /bin/bash#进入gitlab容器内部
gitlab-rails console -e production#进入gitlab控制台
user = User.find_by(email:'admin@example.com')#搜索用户
user.password ='12345678'#修改密码,至少8位
user.password_confirmation ='12345678'
user.save!#保存
exit#退出gitlab控制台
exit#退出gitlab容器内部

5.登录gitlab

  第二步运行镜像时,设置了hostname为locahost,端口为9999。
  所以在浏览器输入localhost:9999即可访问gitlab的登录页面。
  用户名:root
  密码:12345678

6.遇到问题

问题一:

在之前运行镜像时通过-v命令挂载文件到本地时设置的目录为/usr/local/var,发现并没有挂载成功;后面查阅资料如果是mac系统,应该将挂载目录设在/Users/Shared/下;重新运行镜像挂载目录之后发现在/Users/Shared/目录下多出了许多的文件,挂载成功。

问题二:

镜像启动总是失败,查询/Users/Shared/docker/gitlab/log/reconfigure下的日志,发现报错如下:

在这里插入图片描述
查阅资料需要修改/Users/Shared/docker/gitlab/config目录下的gitlab.rb配置文件,将git_data_dirs中的默认路径改为/data/gitlab,重启镜像即可。
在这里插入图片描述

问题三:

在前几次安装配置尝试过程中,最后访问IP时总会报如下图的错误。


(1)通过上网查阅说gitlab特别耗内存,如果内存太小会使得gitlab一直在启动中,没有彻底启动起来。
所以我又将docker的内存往大调了调,再重启镜像。
(2)另一个原因是在启动命令中最好不要使用常用的端口(所以上面我用了9999端口),常用端口容器如果
被其他进程占用,也会导致无法正常访问gitlab。

调整内存:在这里插入图片描述

7.修改gitlab的hostname

在上面运行镜像的命令中将hostname设置成了localhost,现在想更改(方便外部访问最好不要设置为localhost)就需要做如下的配置。

docker exec -it f10 /bin/bash  #进入容器内部
cd /var/opt/gitlab/gitlab-rails/etc #进到此目录下
vi gitlab.yml #修改此文件中的host,如下图

在这里插入图片描述
最后再重启gitlab镜像: docker restart f10

8.设置gitlab外部访问路径url

gitlab成功启动之后,新建了一个项目,在copy项目地址链接时发现无端口。而且在之后cicd部署时总是报错无法访问localhost:80。查阅资料需要配置外部访问的url:
修改/Users/Shared/docker/gitlab/config目录下的gitlab.rb配置文件,如图添加下面这行配置:

注意:这里将端口改为了9999,则在启动镜像时映射的端口就不是80了,而是-p 9999:9999,将容器内部的9999端口映射到9999端口。(这是一个大坑
在这里插入图片描述

9.使用docker安装软件的好处

Docker 安装、卸载、更新应用的指令都是统一的,卸载后除了本地卷以外不会留下缓存,不会影响下一次操作的内容。安装软件就怕一些流氓软件,卸载后始终占有很大内存,如果改变了一些系统配置,还有可能影响到其他软件的安装。用 Docker 就不会,因为他是使用封闭的线程去启动的应用。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是如何使用Docker Compose安装GitLab的步骤: 1. 确认DockerDocker Compose已被正确安装并可以使用。 2. 创建一个目录来存放GitLab配置文件和数据。例如,我们可以在主机上创建一个目录,称为“gitlab”,并将其作为项目目录: ``` mkdir gitlab cd gitlab ``` 3. 创建一个名为“docker-compose.yml”的文件,并在其中添加以下内容: ``` version: '3' services: web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.example.com:8929' gitlab_rails['gitlab_shell_ssh_port'] = 2224 ports: - '8929:80' - '2289:22' volumes: - '/srv/docker/gitlab/config:/etc/gitlab' - '/srv/docker/gitlab/logs:/var/log/gitlab' - '/srv/docker/gitlab/data:/var/opt/gitlab' ``` 上述配置将创建一个名为“web”的GitLab容器,该容器属于GitLab CE图像(最新版本),并且可以在主机上使用以下端口:8929用于HTTP,2289用于SSH。 在“volumes”中,我们定义了三个卷,以便将GitLab配置文件、日志文件和数据文件存储在主机上的“/srv/docker/gitlab”目录中。确保在主机上创建这些目录。 在“environment”中,我们定义了GitLab Omnibus的配置选项,包括外部URL和SSH端口。请根据需要更改这些配置选项。 4. 在主机上运行以下命令启动GitLab容器: ``` docker-compose up -d ``` 该命令将开始构建和启动GitLab容器。您可以使用“-d”选项将其放入后台运行模式。 5. 在浏览器中访问GitLab的外部URL。例如,我们的例子中,您可以在浏览器中打开“http://gitlab.example.com:8929”来访问GitLab。首次访问时,您需要设置admin用户的密码。 6. 您现在可以使用GitLab来创建项目、管理代码版本、设置CI/CD流程等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值