前置条件
- docker gitlab 持久化映射目录: /srv/gitlab/data:/var/opt/gitlab
- 本地 PostgreSQL 用户为 postgres
- 本机 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
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
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 数据
前置操作
- 新建DB用户 gitlab
- 创建DB: gitlabhq_production
导入操作
# 退出容器,或开单独的shell
sudo su - postgres
cd /srv/gitlab/data/tmp-db-dump/
psql -d gitlabhq_production -f gitlabhq_production.sql
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
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
最后
等待服务重启完成,服务是否正常启动
遗憾的是,响应速度变慢了,不知道是不是优化得不够好
当前还没有任何评论