蜡笔小兴 发表于 2024-4-14 14:57:31

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

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
创建 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-cegitlab-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)
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!
设置中文

https://img.jbzj.com/file_images/article/202404/2024040211525629.png
找到 Localization ,把 Language 换成简体中文,然后save changehttps://img.jbzj.com/file_images/article/202404/2024040211525630.png
刷新一下页面,就显示中文了
到此这篇关于docker 部署 gitlab-ce 16.9.1的文章就介绍到这了,更多相关docker 部署 gitlab-ce内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/server/3191370ki.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: docker 部署 gitlab-ce 16.9.1的详细过程