gitlab-docker安裝部署(postgresql、redis分離)
GitLab是由GitLabInc.開發,使用MIT許可證的基於網絡的Git倉庫管理工具,且具有wiki和issue跟蹤功能。使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。
一、Gitlab鏡像文件下載:
可參考此處下載運行:https://docs.gitlab.com/omnibus/docker/
我的運行方式:
docker run -dit --hostname gitlab.chen.com --publish 1443:443 --publish 18080:80 --name gitlab --restart always --volume /data/gitlab/etc:/etc/gitlab --volume /data/gitlab/logs:/var/log/gitlab --volume /data/gitlab/data:/var/opt/gitlab -v /data/gitlab/databases:/data/gitlab/databases 8be4d926d44e
二、安裝postgresql:
#yum install postgresql94-server.x86_64 postgresql94-contrib.x86_64 –y
#userdel postgres
#groupadd postgres
#useradd –g postgres postgres
修改啟動配置文件:
#vim /usr/lib/systemd/system/postgresql-9.4.service
Environment=PGDATA=/data/pgsql/data/ 數據庫文件存放目錄
#mkdir –p /data/pgsql/data
#chown postgres:postgres –R /data/pgsql/data/
初始化數據庫(必須以postgres用戶初始化)
#/usr/pgsql-9.4/bin/initdb -E UNICODE -D /data/pgsql/data/
編輯postgresql.conf配置文件,修改數據庫默認監聽地址和端口:
listen_addresses = ‘localhost‘ 改成 listen_addresses = ‘*‘
port = 5432 默認5432,根據自己需求來改,我這使用默認端口
編輯pg_hba.conf配置文件,告訴數據庫服務允許哪些客戶端連接自己:
以下是我的配置:
備註:md5表示需要密碼驗證,可以設置為trust(本地可以直接psql -U postgres 登陸)
設置開機自啟:
#systemctl enable postgresql-9.4.service
啟動數據庫服務:
#systemctl start postgresql-9.4.service
登陸數據庫:
#su – postgres
#psql -U postgres
三、Redis安裝
#mkdir –p /data/redis/{etc,logs,databases}
#tar xf redis-4.0.9.tar.gz
#cd redis-4.0.9
#make && make install
#cp redis.conf /data/redis/etc
修改redis配置文件:
dir /data/redis/databases
requirepass chen1234
logfile "/data/redis/logs/redis-slow.log"
啟動redis:
#redis-server /data/redis/etc/redis.conf &
修改gitlab配置文件:
vim /data/gitlab/etc/gitlab.rb
修改數據庫配置(docker鏡像使用內置postgresql,建議分離出來,後期方便升級gitlab):
postgresql[‘enable‘] = false #默認為true,設置為false
gitlab_rails[‘db_adapter‘] = "postgresql"
gitlab_rails[‘db_encoding‘] = "utf8"
gitlab_rails[‘db_host‘] = "postgresql數據庫服務端ip"
gitlab_rails[‘db_port‘] = 5432
gitlab_rails[‘db_username‘] = "postgres"
gitlab_rails[‘db_password‘] = "chen1234"
gitlab_rails[‘db_database‘] = "postgres"
修改gitlab redis配置(我使用的也是外置redis):
redis[‘enable‘] = false #和postgresql同理
gitlab_rails[‘redis_host‘] = "x.x.x.x"
gitlab_rails[‘redis_port‘] = 6379
gitlab_rails[‘redis_password‘] = "chen1234"
配置發送郵件服務:
gitlab_rails[‘smtp_enable‘] = true
gitlab_rails[‘smtp_address‘] = "smtp.exmail.qq.com"
gitlab_rails[‘smtp_port‘] = 465
gitlab_rails[‘smtp_user_name‘] = "[email protected]"
gitlab_rails[‘smtp_password‘] = "chen710409894"
gitlab_rails[‘smtp_domain‘] = "smtp.qq.com"
gitlab_rails[‘smtp_authentication‘] = "login"
gitlab_rails[‘smtp_enable_starttls_auto‘] = true
gitlab_rails[‘smtp_tls‘] = true
user[‘git_user_email‘] = "[email protected]"
gitlab_rails[‘gitlab_email_from‘] = ‘[email protected]‘
設置數據存儲目錄:
git_data_dirs({
"default" => {
"path" => "/data/gitlab/databases"
}
})
刷新gitlab配置:
1. 進入容器:docker exec -it 49fd5e4ff215 /bin/bash
2. 刷新配置文件:gitlab-ctl reconfigure
3. 重啟gitlab服務: gitlab-ctl restart
訪問gitlab,如圖所示:
gitlab-docker安裝部署(postgresql、redis分離)