GitLab
https://segmentfault.com/a/1190000021593151
https://leehao.me/%E4%BD%BF%E7%94%A8-docker-%E5%AE%89%E8%A3%85-gitlab/
https://learnku.com/articles/56573
https://juejin.cn/post/6844903544496062472
centos 搭建
https://help.aliyun.com/document_detail/52857.html?spm=5176.22414175.sslink.26.53501a25qRxw4M
- pull镜像
gitlab-ce 社区版,后面不填写版本则默认pull最新latest版本 (此步骤时间可能比较久,需要耐心等待⌛️…)
docker pull gitlab/gitlab-ce:latest
2.创建目录
通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
mkdir -p /usr/local/gitlab/etc
mkdir -p /usr/local/gitlab/log
mkdir -p /usr/local/gitlab/data
修改目录权限:
chmod 777 /usr/local/gitlab/etc
chmod 777 /usr/local/gitlab/log
chmod 777 /usr/local/gitlab/data
通常gitlab会与git配置使用,而git会采用ssh协议来操作git仓库,而我们连接宿主机时也使用ssh,如果不修改默认sshd端口,git使用默认配置就会出现问题,这里将主机的sshd端口从22端口改为15678端口。
Centos7防火墙机制改为了firewall,拥有更加严格的安全机制,你需要按照下面方式去修改。
1.编辑 /etc/ssh/sshd_config,将 #Port 22 注释去掉,将数字 22 更改为 15678。
2.重启sshd服务
systemctl restart sshd
3.配置firewall,使15678端口可以对外提供服务,否则无法使用ssh进行远程登录了。
semanage port -a -t ssh_port_t -p tcp 15678
firewall-cmd --permanent --add-port=15678/tcp
firewall-cmd --reload
运行 docker
export GITLAB_HOME=$HOME/docker/gitlab
# 在系统的根目录执行(存放的路径根据自己随意设置即可)
mkdir docker/gitlab (需要递归创建)
docker run --detach \
--publish 8443:443 --publish 8888:80 --publish 8222:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab:Z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
gitlab/gitlab-ce
注释与说明
--publish 443:443:将http:443映射到外部端口443
--publish 80:80:将web:80映射到外部端口80
--publish 8222:22:将ssh:22映射到外部端口8222
docker run -d -p 443:443 -p 9000:80 -p 22:22 --name gitlab --restart always -v $HOME/docker/gitlab/config:/etc/gitlab -v $HOME/docker/gitlab/logs:/var/log/gitlab -v $HOME/docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
其它指令
docker run --detach --publish 8443:443 --publish 8888:80 --publish 8222:22 --name gitlab --restart unless-stopped --volume /usr/local/gitlab/etc:/etc/gitlab --volume /usr/local/gitlab/log:/var/log/gitlab --volume /usr/local/gitlab/data:/var/opt/gitlab --privileged=true gitlab/gitlab-ce
错误方案
https://cloud.tencent.com/developer/article/1511600
https://www.cnblogs.com/linkenpark/p/8405327.html
重启 sshd 错误
Job for sshd.service failed because the control process exited with error code. See “systemctl status sshd.service” and “journalctl -xe” for details.
docker run \
--publish 443:443 --publish 80:80 --publish 222:22 \
--name gitlab \
--volume /u1/gitlab/config:/etc/gitlab \
--volume /u1/gitlab/logs:/var/log/gitlab \
--volume /u1/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce