Docker Gitlab 移除 Postgresql, 使用外部DB

前置条件

  1. docker gitlab 持久化映射目录: /srv/gitlab/data:/var/opt/gitlab
  2. 本地 PostgreSQL 用户为 postgres
  3. 本机 Docker 地址为 172.17.0.1

进入Docker

docker ps
docker exec -it 39bbba8678d1 /bin/bash

# 准备临时目录
cd /var/opt/gitlab/
mkdir tmp-db-dump
chmod 777 tmp-db-dump

导出 DB 数据

# 查看postgresql配置信息
cat /etc/gitlab/gitlab.rb |grep rails|grep db

# gitlab_rails['db_database'] = "gitlabhq_production"
# gitlab_rails['db_username'] = "gitlab"

cat /etc/passwd |grep psql
gitlab-psql:x:996:996::/var/opt/gitlab/postgresql:/bin/sh

# 切换gitlab-psql账户
su - gitlab-psql
# 使用bash
/bin/bash
cd /var/opt/gitlab/tmp-db-dump/

# 链接到数据
psql -h /var/opt/gitlab/postgresql -d gitlabhq_production

# 导出数据
cd /var/opt/gitlab/tmp-db-dump/
pg_dump -h /var/opt/gitlab/postgresql -d gitlabhq_production > gitlabhq_production.sql

导入 DB 数据

前置操作

  1. 新建DB用户 gitlab
  2. 创建DB: gitlabhq_production

导入操作

# 退出容器,或开单独的shell
sudo su - postgres
cd /srv/gitlab/data/tmp-db-dump/
psql -d gitlabhq_production -f gitlabhq_production.sql

修改配置

# 容器中执行
vim /etc/gitlab/gitlab.rb

# DB的配置
gitlab_rails['db_host'] = '172.17.0.1'
gitlab_rails['db_password'] = 'Your Password'

# 关闭docker内部的postgresql
postgresql['enable'] = false

# 重新编译配置文件
gitlab-ctl reconfigure

# 校验
cat /opt/gitlab/embedded/service/gitlab-rails/config/database.yml

最后

等待服务重启完成,服务是否正常启动

遗憾的是,响应速度变慢了,不知道是不是优化得不够好

当前还没有任何评论

写下你最简单的想法