sameersbn/gitlab/latest(10/16版本)配置坑点记录

这次主要是用docker在host网络搭建gitlab,能在内网中使用git工具做到项目源代码的托管,号称几行命令就能完成搭建任何软件环境docker其实也有使用的技巧。

但是这次踩坑不是因为docker的问题,而是因为我在对照着书上使用docker-compose时并没有在给镜像tag附上书上的版本号,遇到了一系列的bug。我在这里回溯一边,总结一下,以免以后再犯,并且将不懂的知识在本文中补充,并啃完。

首先引发bug的原因前面已经说,由于gitlab的版本不同,在docker上配置环境变量就有一些变化。

这是8.4.4版本的docker-compose.yml:

gitlab-postgresql:
image: sameersbn/postgresql:9.4-12
environment:
– DB_USER=gitlab
– DB_PASS=password
– DB_NAME=gitsql
gitlab-redis:
image: sameersbn/redis

gitlab:
image: sameersbn/gitlab:8.4.4
links:
– gitlab-redis:redisio
– gitlab-postgresql:postgresql
ports:
– “10088:80”
– “10022:22”
environment:
– GITLAB_PORT=10088
– GITLAB_SSH_PORT=10022
– GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string

下面是10月16号前最新版本 的docker_compose.yml:

gitlab-postgresql:
image: sameersbn/postgresql
environment:
– DB_USER=gitlab
– DB_PASS=password
– DB_NAME=gitsql
– DB_EXTENSION=pg_trgm
gitlab-redis:
image: sameersbn/redis

gitlab:
image: sameersbn/gitlab
links:
– gitlab-redis:redisio
– gitlab-postgresql:postgresql
ports:
– “10088:80”
– “10022:22”
environment:
– GITLAB_PORT=10088
– GITLAB_SSH_PORT=10022
– GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string
– GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-str
in
– GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-strin

其实当中主要区别在于:postgresql 环境配置中多了一句:DB_EXTENSION=pg_trgm

gitlab环境配置中多两句:

– GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-str
in
– GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-strin

我并不清楚这是维护镜像的人为了使用的灵活性必须填写这些选项,还是处于版本更新的需要 ,导致我一直以为是我的机器与镜像不兼容,其实这是我犯得第一个错误,并没有仔细看错误提示信息,也没仔细研究错误发生的情况,默认的第一解决办法就是重装再重装,一直从容器重装到镜像,再重启了docker的守护程序,挺傻的。出现的主要bug表现是:gitlab容器启动就退出, 这里积累了一个使用docker的小技巧,使用docker logs 可以打印容器的日志,从而知道导致退出的错误信息,gitlab环境配置的两句话再启动中报错,他会提示你添加上这两条环境变量,在链接postgresql中它会提示error:。。。pg_trgm 。。。,刚开始我并不知道这是什么意思,后来才知道PostgrSQL有个模块叫pg_trgm,可以对字符串来进行比较相似度,并通过加GIST或者GIN索引来达到提速的效果。在一般的RDBMS中这种需求都会进行全表扫描的,但是PG如果加了这个模块,在一定场景下就可以使用索引来提速了。

成功搭建环境后,下一步我将搭建一个局域网,能让网络中的计算机能访问到这台机器host网络中的docker容器服务,又是新的踩坑的旅程!

你可能感兴趣的:(开发环境配置小记)