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[/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.password='Password@123'
保存密码,返回 true 表示修改成功
user.save!
设置中文

找到
Localization,把Language换成简体中文,然后save change

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

栏 目:其它服务器
下一篇:Docker安装部署rocketmq-console工具教程
本文标题:docker 部署 gitlab-ce 16.9.1的详细过程
本文地址:https://zz.feitang.co/server/28548.html
您可能感兴趣的文章
- 12-22nginx代理实现静态资源访问的示例代码
- 12-22Docker 存储管理的几种方式
- 12-22nginx静态资源的服务器配置方法
- 12-22Docker Compose部署微服务项目上线功能
- 12-22GPU服务器的多用户配置方法
- 12-22docker-compose搭建etcd集群的实现(三节点)
- 12-22docker中mysql开启日志的实现步骤
- 12-22Linux下docker安装mysql8并配置远程连接
- 12-22docker部署mysql8并设置可远程连接
- 12-22阿里云oss对象存储使用详细步骤


阅读排行
推荐教程
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法
- 12-13k8s编排之Deployment知识点详解
- 12-13Nginx IP封禁及自动封禁IP的实现
- 12-13Nginx代理Partainer如何使用





