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:{}]創(chuàng)建 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創(chuàng)建目錄
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 的重啟時間非常的久,這個和硬件有關系,等到日志出現(xiàn)
gitlab Reconfigured就說明重啟完成了,就可以用瀏覽器訪問 ip 地址去打開 gitlab 頁面了
配置 root 密碼
進入容器
docker exec -it gitlab-ce bash
進入控制臺
gitlab-rails console -e production
耐心等待,等他出現(xiàn)下面的內容
-------------------------------------------------------------------------------- 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內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決docker?pull出現(xiàn)錯誤:Error?response?from?daemon
這篇文章主要給大家介紹了關于解決docker?pull出現(xiàn)錯誤:Error?response?from?daemon的相關資料,這個錯誤提示一般是因為你沒有權限拉取對應的鏡像,文中將解決辦法介紹的非常詳細,需要的朋友可以參考下2023-12-12
Dockerfile構建Redis鏡像的方法實現(xiàn)(yum方式)
本文主要介紹了Dockerfile構建Redis鏡像的方法實現(xiàn)(yum方式),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08
Docker部署Microsoft Sql Server詳細步驟
大家好,本篇文章主要講的是Docker部署Microsoft Sql Server詳細步驟,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
使用Docker進行node開發(fā)時實現(xiàn)熱加載功能
這篇文章主要介紹了使用docker進行vue、react或者node開發(fā)時實現(xiàn)熱加載功能,即宿主機文件修改之后實時刷新或者實時重啟服務,文中通過代碼示例介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-09-09

