当前位置: 代码网 > 服务器>服务器>云虚拟主机 > docker 部署 gitlab-ce 16.9.1的详细过程

docker 部署 gitlab-ce 16.9.1的详细过程

2024年05月14日 云虚拟主机 我要评论
gitlab/gitlab-ce(需要科学上网)拉取 gitlab-ce 镜像docker pull gitlab/gitlab-ce:16.9.1-ce.0查看镜像是不是有 volumes 的配置d

gitlab/gitlab-ce(需要科学上网)

拉取 gitlab-ce 镜像

docker pull gitlab/gitlab-ce:16.9.1-ce.0

查看镜像是不是有 volumes 的配置

docker inspect gitlab/gitlab-ce:16.9.1-ce.0 --format='{{.config.volumes}}'

获取到类似如下的内容,说明有 volumes 的配置

map[/etc/gitlab:{} /var/log/gitlab:{} /var/opt/gitlab:{}]

创建 gitlab-ce 持久化目录

mkdir -p /data/gitlab-ce-root
cat << eof > /data/gitlab-ce-root/gitlab-ce.env
gitlab_base_dir='/data/gitlab-ce-root'
gitlab_config_dir="\${gitlab_base_dir}/conf"
gitlab_data_dir="\${gitlab_base_dir}/data"
gitlab_log_dir="\${gitlab_base_dir}/logs"
eof

创建目录

source /data/gitlab-ce-root/gitlab-ce.env
mkdir -p ${gitlab_config_dir} ${gitlab_data_dir} ${gitlab_log_dir}

启停脚本配置

  • 通过 start 启动容器
  • 通过 stop 停止容器
  • 通过 restart 重启容器
  • 通过 exec 进入容器
#!/usr/bin/env bash
source /data/gitlab-ce-root/gitlab-ce.env
gitlab_port='8888'
gitlab_mem=4g
gitlab_name='gitlab-ce'
gitlab_image='gitlab/gitlab-ce:16.9.1-ce.0'
function useage () {
  echo "usage: [ bash ${0} start ] to start gitlab-ce"
  echo "usage: [ bash ${0} stop ] to stop gitlab-ce"
  echo "usage: [ bash ${0} restart ] to restart gitlab-ce"
  echo "usage: [ bash ${0} exec ] to exec gitlab-ce"
  exit 1
}
function optstart () {
docker_ps=$(docker ps -a | awk "/${gitlab_name}/ {print \$nf}")
if [[ "${docker_ps}"x == "${gitlab_name}"x ]];then
  docker_status=$(docker ps -a --format="{{.names}} {{.status}}" | awk "/${gitlab_name}/ {print \$2}")
  if [[ "${docker_status}"x == "up"x ]];then
    echo "${gitlab_name} is up"
  else
    docker start ${gitlab_name} > /dev/null
    if [ $? -eq 0 ];then
      echo "${gitlab_name} start success"
    fi
  fi
else
  docker run -d \
    -p ${gitlab_port}:80 \
    -v ${gitlab_config_dir}:/etc/gitlab  \
    -v ${gitlab_log_dir}:/var/log/gitlab \
    -v ${gitlab_data_dir}:/var/opt/gitlab \
    --restart always \
    --privileged=true \
    --name ${gitlab_name} \
    --memory=${gitlab_mem} \
    ${gitlab_image}
fi
}
function optstop () {
  docker stop ${gitlab_name} > /dev/null
  if [ $? -eq 0 ];then
    echo "${gitlab_name} stop success"
  fi
}
function optexec () {
  docker exec -it ${gitlab_name} bash
}
if [ $# -eq 0 ];then
  useage
fi
case $1 in
    'start' )
        optstart
        ;;
    'stop' )
        optstop
        ;;
    'restart' )
        optstop
        optstart
        ;;
    'exec' )
        optexec
        ;;
    '*' )
        useage
        ;;
esac

配置 gitlab-ce

进入 gitlab-ce 容器

docker exec -it gitlab-ce bash

编辑 gitlab-ce 配置文件

egrep -q '^external_url' /etc/gitlab/gitlab.rb || echo "external_url 'http://172.72.0.170'" >> /etc/gitlab/gitlab.rb

重启 gitlab-ce

退出容器,然后重启容器

docker restart gitlab-ce

gitlab-ce 的重启时间非常的久,这个和硬件有关系,等到日志出现 gitlab reconfigured 就说明重启完成了,就可以用浏览器访问 ip 地址去打开 gitlab 页面了

配置 root 密码

进入容器

docker exec -it gitlab-ce bash

进入控制台

gitlab-rails console -e production

耐心等待,等他出现下面的内容

--------------------------------------------------------------------------------
 ruby:         ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux]
 gitlab:       16.9.1 (0ef8ba69a8f) foss
 gitlab shell: 14.33.0
 postgresql:   14.10
------------------------------------------------------------[ booted in 44.67s ]
loading production environment (rails 7.0.8)
irb(main):001:0>

查询管理员的名字

user = user.where(id:1).first

返回如下的内容

=> #<user id:1 @root>

设置密码

user.password='password@123'

保存密码,返回 true 表示修改成功

user.save!

设置中文

找到 localization ,把 language 换成简体中文,然后save change

刷新一下页面,就显示中文了

到此这篇关于docker 部署 gitlab-ce 16.9.1的文章就介绍到这了,更多相关docker 部署 gitlab-ce内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com