Docker 搭建使用外部数据库的 gitlab

搭建

    官方的gitlab 镜像使用的相关mysql和redis均是内部嵌套的。

    下方是使用外部数据库的镜像:sameersbn/gitlab:11.5.1

部署数据库

mysql

    运行容器

mkdir -p /home/bubao/disk/data1/opt/mysql/{data,conf.d}        创建目录
docker run --name mysql \
    --restart=always \
    --env MYSQL_ROOT_PASSWORD=123456 \
    --volume /home/bubao/disk/data1/opt/mysql/data:/var/lib/mysql \
    --volume /home/bubao/disk/data1/opt/mysql/conf.d:/etc/mysql/conf.d \
    --publish 3306:3306 \
    -d mysql:latest

        --name mysql:容器实例名
        --restart=always \    在容器停止时,总是立即重启
        --env MYSQL_ROOT_PASSWORD=123456 \    数据库连接密码
        --volume /home/bubao/disk/data1/opt/mysql/data:/var/lib/mysql \        挂载目录
        --volume /home/bubao/disk/data1/opt/mysql/conf.d:/etc/mysql/conf.d \    挂载目录
        --publish 3306:3306 \        端口映射
        -d mysql:latest        后台运行

    进入容器

docker exec -it mysql /bin/bash  
mysql -h localhost -uroot -p        登陆

    添加账号,并创建一个用户

CREATE USER 'gitlab'@'%.%.%.%' IDENTIFIED BY '123456';     创建账号gitlab
CREATE DATABASE IF NOT EXISTS `gitlab_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;    创建一个名称为gitlab_production的数据库
GRANT ALL PRIVILEGES ON `gitlab_production`.* TO 'gitlab'@'%.%.%.%';       gitlab_production授权给账号gitlab
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';        root账号拥有所有权
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';    初始修改root账号密码
flush privileges; 

redis

mkdir -p /home/bubao/disk/data1/opt/redis/{conf,data}        创建目录

docker run --name redis \
--restart=always \
--volume /home/bubao/disk/data1/opt/redis/conf:/usr/local/etc/redis \
--volume /home/bubao/disk/data1/opt/redis/data:/data \
--publish 6379:6379 \
-d redis:5.0-rc4 --appendonly yes

        -d redis:5.0-rc4 --appendonly yes:总是追加到末尾

部署gitlab

mkdir -p /home/bubao/disk/data1/opt/gitlab    创建目录

docker run \
    --name gitlab -d \
    --restart=always \
    --link mysql:mysql \
    --link redis:redisio \
    --env 'DB_HOST=10.0.0.3' \
    --env 'DB_PORT=3306' \
    --env 'DB_NAME=gitlab_production' \
    --env 'DB_USER=gitlab' \
    --env 'DB_PASS=123456' \
    --env 'REDIS_HOST=10.0.0.3' \
    --env 'REDIS_PORT=6379' \
    --publish 10012:22 --publish 10010:80 \
    --env 'GITLAB_SSH_PORT=10012' \
    --env 'GITLAB_PORT=10010' \
    --env 'GITLAB_HOST=10.0.0.3' \
    --env 'GITLAB_TIMEZONE=Asia/Shanghai' \
    --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
    --env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
    --env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
    --volume /home/bubao/disk/data1/opt/gitlab/data:/home/git/data \
sameersbn/gitlab:11.2.3

     
            --name gitlab -d \    容器名称,后台运行
            --restart=always \    在容器停止时,总是立即重启
            --link mysql:mysql \    使用mysql容器关联内部的mysql
            --link redis:redisio \    使用redis容器关联内部的redisio
            --env 'DB_HOST=10.0.0.3' \   指定数据库地址
            --env 'DB_PORT=3306' \    指定数据库端口
            --env 'DB_NAME=gitlab_production' \    指定数据库名
            --env 'DB_USER=gitlab' \    指定数据库登陆账户名
            --env 'DB_PASS=123456' \    指定数据库登陆账户密码
            --env 'REDIS_HOST=10.0.0.3' \    指定redis地址
            --env 'REDIS_PORT=6379' \    指定redis端口
            --publish 10012:22 --publish 10010:80 \    端口映射:ssh外部端口10012->22,web外部端口10010->80
            --env 'GITLAB_SSH_PORT=10012' \    环境变量:gitlab的SSH的端口
            --env 'GITLAB_PORT=10010' \    环境变量:gitlab的端口
            --env 'GITLAB_HOST=10.0.0.3' \    环境变量:gitlab的主机名
            --env 'GITLAB_TIMEZONE=Asia/Shanghai' \    环境变量:gitlab的时区
            --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \    环境变量:gitlab的数据库密码串
            --env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \    环境变量:gitlab的密钥串
            --env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \    环境变量:gitlab的otp的密码串
            --volume /home/bubao/disk/data1/opt/gitlab/data:/home/git/data \    挂载数据目录

登录

    因为gitlab启动时间比较长,等十分钟,访问 ip地址:10010,输入root密码,就能登录了。当然也可以创建新的用户,root用户用于管理其他用户。

c87e047657b5768d3619441606fc078c54c.jpg

转载于:https://my.oschina.net/langwanghuangshifu/blog/2907073

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值