- 编写dockerfile文件
FROM gitlab/gitlab-ce
USER root
RUN git clone https://gitlab.com/xhang/gitlab.git
// 进入克隆仓库得到的gitlab目录
WORKDIR /gitlab
// 对比不同生成汉化补丁。
RUN git diff v10.5.4..v10.5.4-zh > v10.5.4.diff
// 应用汉化补丁
COPY v10.5.4.diff /
WORKDIR /opt/gitlab/embedded/service/gitlab-rails/
RUN git apply /v10.5.4.diff
WORKDIR /
//set time zone
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
//port
EXPOSE 443 80 22
2.生成gitlab镜像
sudo docker build -t registry.com.cn/gitlab:10.5.4 -f ./gitlabDockerfile .
3.启动docker容器
docker run -d \
–hostname gitlab.phfund.com.cn \
-p 443:443 -p 8080:80 -p 22:22 \
–name gitlab \
-v /home/gitlab/config:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
registry.com.cn/gitlab:10.5.4
启动容器后,如果遇到权限问题(.ssh目录权限),需要再次启动容器并及时使用权限更新命令修正该步骤
docker exec -it gitlab update-permissions
如果仍旧提示其他文件没有权限,需要再次启动容器并在执行到指定步骤之前手工执行修改权限。gitlab在启动时发现权限已经达到要求就不会再次调整
docker exec -it gitlab chgrp gitlab-www /var/opt/gitlab/gitlab-rails/shared
docker exec -it gitlab chgrp gitlab-www /var/opt/gitlab/gitlab-rails/shared/pages