docker 部署 gitlab-ce 16.9.1

news/2024/4/27 8:13:26

文章目录

    • @[toc]
    • 拉取 gitlab-ce 镜像
    • 创建 gitlab-ce 持久化目录
    • 启停脚本配置
    • 配置 gitlab-ce
      • 编辑 gitlab-ce 配置文件
      • 重启 gitlab-ce
      • 配置 root 密码
    • 设置中文

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.envGITLAB_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 ]];thenDOCKER_STATUS=$(docker ps -a --format="{{.Names}} {{.Status}}" | awk "/${GITLAB_NAME}/ {print \$2}")if [[ "${DOCKER_STATUS}"x == "Up"x ]];thenecho "${GITLAB_NAME} is up"elsedocker start ${GITLAB_NAME} > /dev/nullif [ $? -eq 0 ];thenecho "${GITLAB_NAME} start success"fifi
elsedocker 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/nullif [ $? -eq 0 ];thenecho "${GITLAB_NAME} stop success"fi
}function optExec () {docker exec -it ${GITLAB_NAME} bash
}if [ $# -eq 0 ];thenuseAge
ficase $1 in'start' )optStart;;'stop' )optStop;;'restart' )optStopoptStart;;'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) FOSSGitLab Shell: 14.33.0PostgreSQL:   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

在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11222.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

如何在极狐GitLab 自定义 Pages 域名、SSL/TLS 证书

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了在极狐GitLab 用户…

FebHost:什么是韩国.KR域名,注册有什么优势?

在互联网时代,国家顶级域名已成为一个国家在网络世界的重要标识。其中,.KR 域名就是韩国在互联网上的独有国家标识,在推动韩国网络事业发展中发挥着重要作用。 .KR 域名的历史可以追溯到1986年,当时韩国互联网振兴院首次推出了这一国家顶级域名。自此,.KR 域名成为了韩国在网络…

【机器学习300问】55、介绍推荐系统中的矩阵分解算法是什么、有什么用、怎么用?

本来这篇文章我想先讲矩阵分解算法是什么东西的&#xff0c;但这样会陷入枯燥的定义中去&#xff0c;让原本非常有趣技术在业务场景中直观的使用路径被切断。所以我觉得先通过一个具体的推荐算法的例子&#xff0c;来为大家感性的介绍矩阵分解有什么用会更加合理。 如果你还不知…

对话 Mines of Dalarnia: Web3 游戏创新,社区驱动与公链共建

作者&#xff1a;stellafootprint.network 嘉宾&#xff1a;Manfred Pack&#xff0c;Mines of Dalarnia 游戏开发总监 采访者&#xff1a;Alex Cooper&#xff0c;Footprint Analytics 北美社区与 BD 负责人 在区块链游戏领域&#xff0c;去中心化和玩家经济正在颠覆传统游戏…

网络:udptcp套接字

目录 协议 网络传输基本流程 网络编程套接字 udp套接字编程 udp相关代码实现 sock函数 bind函数 recvfrom函数 sendto函数 udp执行指令代码 popen函数 udp多线程版收发消息 tcp套接字编程 tcp套接字代码 listen函数 accept函数 read/write函数 connect函数 recv/…

Vue 04 Vue 中的 Ajax、slot 插槽

Vue学习 Vue 0401 Vue中的Ajax服务器准备axios使用跨域问题解决Vue-CLI 配置代理1Vue-CLI 配置代理2案例: 用户搜索vue-resource 02 slot插槽默认插槽具名插槽作用域插槽slot总结 Vue 04 B站 Vue全家桶&#xff08;BV1Zy4y1K7SH&#xff09; 学习笔记 Vue 中的 ajax 01 Vue中的…