草庐IT

docker搭建gitlab

Miss__xxzz 2023-04-20 原文

docker搭建gitlab

 创建宿主机挂载目录

由于是docker镜像运行, 所以我们需要把gitlab的

配置, 数据, 日志存到容器外面, 即将其挂载到宿主机。先准备三个目录:

[root@localhost ~]# cd /srv

[root@localhost srv]# mkdir gitlab

[root@localhost srv]# cd gitlab/

[root@localhost gitlab]# ls

[root@localhost gitlab]#  mkdir config logs data

[root@localhost gitlab]# ls

config  data  logs

拉取镜像

(就使用镜像 gitlab/gitlab-ce ,其它经反复验证,不行

[root@localhost gitlab]# docker pull gitlab/gitlab-ce

Using default tag: latest

latest: Pulling from gitlab/gitlab-ce

Digest: sha256:5a0b03f09ab2f2634ecc6bfeb41521d19329cf4c9bbf330227117c048e7b5163

Status: Image is up to date for gitlab/gitlab-ce:latest

创建容器

docker run --detach --publish 443:443 --

publish 9001:80 --publish 8022:22 --

hostname 虚拟机的Ip --name mygitlab --

restart always -v

/srv/gitlab/config:/etc/gitlab -v

/srv/gitlab/logs:/var/log/gitlab -v

/srv/gitlab/data:/var/opt/gitlab -v

/etc/localtime:/etc/localtime:ro --

privileged=true gitlab/gitlab-ce

----------------------------------------------------------------------------------------------

最终执行的使用下面的,注意修改虚拟机的IP地址

docker run -di --publish 443:443 --publish 9001:80 --publish 8022:22 --hostname 192.168.99.67 --name mygitlab \

> --restart always -v \

> /srv/gitlab/config:/etc/gitlab -v \

> /srv/gitlab/logs:/var/log/gitlab -v \

> /srv/gitlab/data:/var/opt/gitlab -v \

> /etc/localtime:/etc/localtime:ro --privileged=true gitlab/gitlab-ce

run命令参数

-d, --detach: 指定容器在后台运行,默认为 false。

-e, --env: 指定环境变量。

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-p,--publish:指定容器暴露的端口,宿主端口:容器内部端口

--name:为容器指定一个名字。

-v,--volume: 映射目录(卷),宿主目录:容器内部目录,常用来将配置文件或者是数据文件放在宿主机器上。

--restart: 指定容器停止后的重启策略:

     no: 容器退出时不重启,默认值

     no-failure: 容器故障退出(返回值为零)时重启,no-failure:3 循环重启3次。

     always: 容器退出时总是重启

--privileged:指定容器是否为特权容器,特权容器拥有所有的权限,默认为 false。

--rm:指定容器停止后自动删除容器(不支持以docker run -d 后天启动的容器),默认为 false.

(以下是我执行的情况)

[root@localhost gitlab]# docker run -di --publish 443:443 --publish 9001:80 --publish 8022:22 --hostname 192.168.99.67 --name mygitlab \

> --restart always -v \

> /srv/gitlab/config:/etc/gitlab -v \

> /srv/gitlab/logs:/var/log/gitlab -v \

> /srv/gitlab/data:/var/opt/gitlab -v \

> /etc/localtime:/etc/localtime:ro --privileged=true gitlab/gitlab-ce

01d8a25705f594e2de1e8b2abe6a2d30ef5661a5c56200fd4e02bceca199cfd4

[root@localhost gitlab]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                             PORTS                                                              NAMES

01d8a25705f5        gitlab/gitlab-ce    "/assets/wrapper"   18 seconds ago      Up 18 seconds (health: starting)   0.0.0.0:443->443/tcp, 0.0.0.0:8022->22/tcp, 0.0.0.0:9001->80/tcp   mygitlab

访问gitlab

输入IP和端口直接访问  : http://192.168.99.67:9001/

用户名为: root   使用默认密码登录(下面为获取密码的方法

登录后第一时间修改密码。

获取默认密码

gitlab-ce-14初装以后,把密码放在了一个临时文件中了

/etc/gitlab/initial_root_password

这个文件将在首次执行reconfigure24小时自动删除

前面在启动容器的时候进行了挂载映射,就是为了现在查看方便。

[root@localhost gitlab]# cd /srv/gitlab/config

[root@localhost config]# cat initial_root_password

# WARNING: This value is valid only in the following conditions

#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).

#          2. Password hasn't been changed manually, either via UI or via command line.

#

#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: 8Ki8BhsdXmyXhd+fNG7Ox+Srp8D8TfGoAf85FhrA5Mg=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

修改密码

输入密码,点击change

修改成功,页面会跳转至登录页面,使用新密码登录

登录成功

注册新用户

 

You have signed up successfully. However, we could not sign you in because your account is awaiting approval from your GitLab administrator.

新用户登录报错解决:

使用root登录,进行审批通过就可以

刷新登录页面,重新使用新账号登录成功

502解决方案

如果虚拟机进行了重启等动作,gitlab会出现登录不上的问题,需要重新启动容器服务或者关闭防火墙。

502

Whoops, GitLab is taking too much time to respond.

Try refreshing the page, or going back and attempting the action again.

Please contact your GitLab administrator if this problem persists.

Go back

docker exec容器id  gitlab-ctl reconfigure     #容器里启动服务

防火墙根据情况来选择

systemctl stop firewalld   #关闭防火墙

将部署gitlab的容器打包成一个镜像

docker commit -a “jnc”-m “gitlab/gitlab-ce”容器ID   镜像名称:版本号

[root@localhost ~]# docker commit -a "sunsun" -m "gitlab/gitlab-ce" 01d8a25705f5 dsfzgitlab:1.0

sha256:fbd0aa8d8ae462d81a8641d6948fba35bb072ff11fed53359ef7ede7ffe60788

创建新镜像的一个容器,typecho网站正常访问

有关docker搭建gitlab的更多相关文章

  1. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  2. ruby - 将 Gitlab 从 9.3.7 更新到 9.3.8 安装 re2 时出错 - 2

    我们在Ubuntu14.04和Gitlab9.3.7上运行,运行良好。我们正在尝试更新到Gitlabv9.3.8的最新安全补丁,但它给我们这个错误:Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension.currentdirectory:/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/re2-1.0.0/ext/re2/usr/local/bin/ruby-r./siteconf20170720-19622-15i0edf.rbextconf.rbcheckingformain(

  3. ruby-on-rails - 清除 GitLab 中的所有 Assets - 2

    我想在我公司安装的GitLab中使用自定义Logo-白色、Logo-黑色和网站图标。我用谷歌搜索了我的屁股并尝试了所有我能找到的方法来清除这些该死的图像,但似乎没有任何效果。这是唯一似乎成功运行但未删除图像的进程:bundleexecrakecache:clearRAILS_ENV=productionservicegitlabstopredis-cliFLUSHALLbundleexecrakeassets:precompileRAILS_ENV=productionservicegitlabstart然后我清除我的浏览器缓存并转到该域,再次出现相同的该死的图像!我什至删除了我能从应

  4. ruby-on-rails - 私有(private) gem 没有安装在 docker 中 - 2

    我正在尝试使用docker运行一个Rails应用程序。通过github的sshurl安装的gem很少,如下所示:Gemfilegem'swagger-docs',:git=>'git@github.com:xyz/swagger-docs.git',:branch=>'my_branch'我在docker中添加了keys,它能够克隆所需的repo并从git安装gem。DockerfileRUNmkdir-p/root/.sshCOPY./id_rsa/root/.ssh/id_rsaRUNchmod700/root/.ssh/id_rsaRUNssh-keygen-f/root/.ss

  5. ruby-on-rails - 将 Heroku 环境变量传输到 Docker 实例 - 2

    我在Heroku上构建了一个必须在Docker容器内运行的RoR应用程序。为此,我使用officialDockerfile.因为它在Heroku中很常见,所以我需要一些附加组件才能使这个应用程序完全运行。在生产中,变量DATABASE_URL在我的应用程序中可用。但是,如果我尝试其他一些使用环境变量(在我的例子中是Mailtrap)的加载项,变量不会在运行时复制到实例中。所以我的问题很简单:如何让docker实例在Heroku上执行时知道环境变量?您可能会问,我已经知道我们可以在docker-compose.yml中指定一个environment指令。我想避免这种情况,以便能够通过项目

  6. ruby - 如何使用 webhooks 从 Gitlab 推送到 Github - 2

    如果我只能找到正确的手册,我的Google-fu就会让我失望,因为这看起来很明显。我有一个由我们的托管服务提供商安装的Gitlab服务器Gitlab服务器有很多项目。对于其中一些项目,我希望Gitlab每次从本地客户端推送到Gitlab时自动推送到远程存储库(在本例中为Github)。像这样:客户端-->gitlab-->github任何标签和分支也应该被推送。AFAICT我有3个选择:用两个Remote配置本地客户端,同时推送到Gitlab和Github。我想避免这种情况,因为开发人员。在Gitlab服务器上的存储库中添加一个gitpost-receiveHook。这将是最灵活的(我

  7. ruby - 更新 gem 时 Docker 包安装缓存问题 - 2

    我在开发和生产中都使用docker,真正困扰我的一件事是docker缓存的简单性。我的ruby​​应用程序需要bundleinstall来安装依赖项,因此我从以下Dockerfile开始:添加GemfileGemfile添加Gemfile.lockGemfile.lock运行bundleinstall--path/root/bundle所有依赖项都被缓存,并且在我添加新gem之前效果很好。即使我添加的gem只有0.5MB,从头开始安装所有应用程序gem仍然需要10-15分钟。由于依赖项文件夹的大小(大约300MB),然后再花10分钟来部署它。我在node_modules和npm上遇到了

  8. 【详解】Docker安装Elasticsearch7.16.1集群 - 2

    开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建

  9. 转转测试环境docker化实践 - 2

        测试环境对于任何一个软件公司来讲,都是核心基础组件之一。转转的测试环境伴随着转转的发展也从单一的几套环境发展成现在的任意的docker动态环境+docker稳定环境环境体系。期间环境系统不断的演进,去适应转转集群扩张、新业务的扩展,走了一些弯路,但最终我们将系统升级到了我们认为的终极方案。下面我们介绍一下转转环境的演进和最终的解决方案。1测试环境演进1.1单体环境    转转在2017年成立之初,5台64G内存的机器,搭建5个完整的测试环境。就满足了转转的日常所需。一台分给开发,几台分给测试。通过沟通协调就能解决多分支并行开发下冲突问题。1.2动态环境+稳定环境    随着微服务化的进

  10. ruby - 将 omniauth-gem 添加到综合 GitLab 安装 - 2

    一般来说,我对ruby​​并没有太多经验,也没有尝试在GitLab社区版中安装新的omniauth提供程序。我使用综合包将其安装在Ubuntu14.04上。目标是根据JasigCAS对GitLab进行身份验证根据Customomniauthproviderconfigurationsdoc使这项工作正常进行的下一步是使用“gem'omniauth-cas'”将相应的gem添加到gemfile。安装的omnibus包甚至可以做到这一点吗?还是必须手动重新安装?我在安装目录中没有看到任何gemfile,我想它在/var/opt/gitlab的某个地方?谢谢大家!

随机推荐