千家信息网

怎么在docker上构建私有云IDE和devops构建链

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,本篇内容介绍了"怎么在docker上构建私有云IDE和devops构建链"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2024年11月22日怎么在docker上构建私有云IDE和devops构建链

本篇内容介绍了"怎么在docker上构建私有云IDE和devops构建链"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

群晖docker上搭建gitlab

我用的是2019.2.2号左右dockerhub上sameersbn/gitlab的GitLab Community Edition 11.7.0(在他的镜像中,7.4.3之前版本,镜像里包含所有组件,7.4.3版本镜像里只包含核心组件:nginx、sshd、ruby on rails、sidekiq),不要下载官方的gitlab/gitlab-ce,那个镜像里内内置了postgresql数据库。启动时占用内存过大。而且不正交。由于这个镜像很大,外网线路下载起来很费事,容易中断,我们可以利用上ss的方法,在windows上开一个允许局域网连接。然后在群晖控制面板->你当前使用的网络界面中配置一个代理服务器。之后下载就会快多了,下载完全后,同时下载redis:latest,这样postgresql9.5,redis,gitlab镜像都有了。先启动postgresql和redis的实例。

再开启一个sameersbn/gitlab的实例,link到postgresql9.5:别名postgresql,redis:别名redisio,80容器端口映到8001,因为主机群晖占用了80。增加几个环境变量,

GITLAB_SECRETS_DB_KEY_BASE=随便写GITLAB_SECRETS_SECRET_KEY_BASE=随便写GITLAB_SECRETS_OTP_KEY_BASE=随便写

启动,gitlab会自动连接postgresql,发现容器退出,查看日志后发现,FATAL: role "root" does not exist,数据库中没有root用户,这是因为gitlab实例对postgresql实例的数据库有root检查,及其它一些硬性配置上的要求。下面这些做:在群晖的web版进postgresql1实例的终端机界面(点新增会自动打开一个bash终端)新建一个root用户并赋于权限。

su - postgrespsqlcreate user root with password 'password';ALTER ROLE root WITH SUPERUSER;此时再尝试启动应该没有上述错误了。但又退出,且提示psql: FATAL: database "gitlabhq_production" does not existCREATE USER gitlab WITH PASSWORD 'password';CREATE DATABASE gitlabhq_production OWNER gitlab;GRANT ALL PRIVILEGES ON DATABASE gitlabhq_production TO gitlab;\q

最终启动成功,发现内存维持在1G多比gitlab/gitlab-ce少很多,打开群晖ip:8001,会提示让你修改root的密码,这个root是gitlab用户的不是postgresql的。用root和这个密码登录,进群晖ip:8001/admin/。

现在可以在上面建立repo,clone的界面上显示的是localhost,你需要额外加二个启动环境参数来定制这里显示为localhost的部分,另外如果你想导出各种volumes,参照ellie关于权限的处理方法就行。

最后,然后进admin/runners查一个token,备用。

在群晖docker上安装gitlab ci for docker

这里的坑有点多。

首先不要下载sameersbn/gitlab-ci-multi-runner:latest(gitlab/gitlab-runner也是multi的),这个版本太老,启动后link到一个别名为gitlab的第一步安装的gitlab实例,sameersbn的runner是可以定义环境变量注册的

RUNNER_TOKEN:上面的tokenCI_SERVER_URL:http://link到的gitlab别名:80到主机的转发端口/ciRUNNER_DESCRIPTION:随便填RUNNER_EXECUTOR:这个暂时先填shell

虽然方便,然而我尝试了下这种方法在上述sameersbn/gitlab-ci-multi-runner版本中根本无法使用,一直提示404,PANIC: Failed to register this runner. 404,PANIC: Failed to register this runner. Perhaps you are having network problems

我们下载同gitlab版本的gitlab/gitlab-runner:v11.7.0,启动后link到第一步安装的gitlab别名gitlab,然后进终端机用命令行方式注册runner到CI:

像上一个方法一样新建一个bash,会进入/home/gitlab_runner中,打入gitlab-runner register会提示输入六个选项的参数。依次是:

url:这个填http://gitlab/ciregistration-token:这个填第一步获取备用到的那个tokenexecutor这里填dockerdocker-image这里我可以按需求填alpine:3,这个有什么讲究呢?这什么选这个呢?预置的有什么用呢?其实这是构建Docker image时填写的image名称,根据项目代码语言不同,指定不同的镜像。description随便填tag-list这里填v1170

所以你看出来了,以后devops的触发主要是由其中对应到这里的tags来触发,docker ci build的原理其实就是以某docker image为虚拟机,在里面一层一层构建fs,然后叠加成最终镜像,这里的docker-img即为那个虚拟机。

所以docker image加tag的组合可以根据很多不同目的来定义多个多用。

"怎么在docker上构建私有云IDE和devops构建链"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0