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

  1. pull镜像

gitlab-ce 社区版,后面不填写版本则默认pull最新latest版本 (此步骤时间可能比较久,需要耐心等待⌛️…)

  1. 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服务

  1. systemctl restart sshd

3.配置firewall,使15678端口可以对外提供服务,否则无法使用ssh进行远程登录了。

  1. semanage port -a -t ssh_port_t -p tcp 15678
  2. firewall-cmd --permanent --add-port=15678/tcp
  3. firewall-cmd --reload

运行 docker

  1. export GITLAB_HOME=$HOME/docker/gitlab
  2. # 在系统的根目录执行(存放的路径根据自己随意设置即可)
  3. mkdir docker/gitlab (需要递归创建)
  4. docker run --detach \
  5. --publish 8443:443 --publish 8888:80 --publish 8222:22 \
  6. --name gitlab \
  7. --restart always \
  8. --volume $GITLAB_HOME/config:/etc/gitlab:Z \
  9. --volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
  10. --volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
  11. gitlab/gitlab-ce
  12. 注释与说明
  13. --publish 443:443:将http443映射到外部端口443
  14. --publish 80:80:将web80映射到外部端口80
  15. --publish 8222:22:将ssh22映射到外部端口8222
  1. 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

其它指令

  1. 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

http://192.168.200.130:8888/

错误方案

https://cloud.tencent.com/developer/article/1511600

https://www.cnblogs.com/linkenpark/p/8405327.html

image.png

重启 sshd 错误
Job for sshd.service failed because the control process exited with error code. See “systemctl status sshd.service” and “journalctl -xe” for details.

  1. docker run \
  2. --publish 443:443 --publish 80:80 --publish 222:22 \
  3. --name gitlab \
  4. --volume /u1/gitlab/config:/etc/gitlab \
  5. --volume /u1/gitlab/logs:/var/log/gitlab \
  6. --volume /u1/gitlab/data:/var/opt/gitlab \
  7. gitlab/gitlab-ce