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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论