网站更新内容:请访问: https://bigdata.ministep.cn/

基于Docker在M芯片的Mac OS X系统中的部署和设置

参考

[基于Docker在M芯片的Mac OS X系统中的部署和设置GitLab · Saki's 研究记录](https://sakishum.com/2023/04/11/%E5%9F%BA%E4%BA%8EDocker%E5%9C%A8M%E8%8A%AF%E7%89%87%E7%9A%84Mac-OS-X%E7%B3%BB%E7%BB%9F%E4%B8%AD%E7%9A%84%E9%83%A8%E7%BD%B2%E5%92%8C%E8%AE%BE%E7%BD%AEGitLab/#/%E7%8E%AF%E5%A2%83%E4%BF%A1%E6%81%AF)

docker 配置:

[搭建gitlab私有仓库 - sowler - 博客园](https://www.cnblogs.com/sowler/p/18652367)

 

详情:

环境信息

mac OS: 13.1
docker desktop: 4.16.2 (95914)
Docker Compose version 2.6.1

环境准备

使用命令搜索镜像:docker search gitlib-ce

1
2
3
4
docker search gitlib
NAME                                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
yhfudev/docker-gitlab                     docker gitlib for arch linux                    3                    [OK]
...

找到镜像后,拉取镜像:
yrzr/gitlab-ce-arm64v8

1
docker pull yrzr/gitlab-ce-arm64v8

这个是gitlabarm64镜像

1
> mkdir gitlab

设置环境变量:

1
2
3
> export GITLAB_HOME=$(pwd)/gitlab
> echo $GITLAB_HOME
/Users/shenshijie/Data/app/gitlab

或使用.env:

1
GITLAB_HOME=${PWD}

或直接使用.替换$GITLAB_HOME

为 gitlab 创建 docker-compose 配置文件

1
vim docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
version: '3.7'
services:
  web:
    image: 'yrzr/gitlab-ce-arm64v8:latest'
    hostname: 'localhost'
    restart: always
    container_name: gitlab-ce
    depends_on:
      - postgres
    environment:
      TZ: 'Asia/Shanghai'
      #GITLAB_ROOT_PASSWORD: ''
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost'
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
        gitlab_rails['gitlab_ssh_host'] = 'localhost'
        gitlab_rails['gitlab_shell_ssh_port'] = 9922
        postgresql['enable'] = false
        gitlab_rails['db_username'] = "gitlab"
        gitlab_rails['db_password'] = "gitlab"
        gitlab_rails['db_host'] = "postgresql"
        gitlab_rails['db_database'] = "gitlabhq_production"
        gitlab_rails['db_adapter'] = 'postgresql'
        gitlab_rails['db_encoding'] = 'utf8'
    ports:
      - '9980:80'
      - '9922:22'
      - '8443:443'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    networks:
      - gitlab

  postgres:
    image: postgres
    container_name: postgres
    hostname: 'postgresql'
    restart: always
    ports:
      - 25432:5432
    volumes:
      - $GITLAB_HOME/db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: gitlab
      POSTGRES_PASSWORD: gitlab
      POSTGRES_DB: gitlabhq_production
    networks:
      - gitlab

networks:
  gitlab:
    name: gitlab-network

参数解析:

  • hostname: 访问的域名
  • env: 这里面就是临时提权生效的
    • 这个就是可以给gitlab传入部分参数,让其构建过程读取你设置的值(gitlab.rb)并且生效
    • 官方说这个并不会写入gitlab.rb(就是gitlab的配置文件),只是临时生效(容器生存期间)

对于Gitlab配置,你可以配置容器内的,也可以配置映射的区域
前者可以用gitlab-ctl reconfigure重新生效,后者需要重启容器

• 容器内: /etc/gitlab
• 映射: $GITLAB_HOME/config

*注意:这里的路径下面一定要加上/etc、/log、/opt,不然创建出来的gitlab文件会有问题

启动容器

1
docker-compose up -d

验证是否启动成功

1
2
3
4
5
docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
gitlab-ce           "/assets/wrapper"        gitlab              running (healthy)   0.0.0.0:9922->22/tcp, 0.0.0.0:9980->80/tcp, 0.0.0.0:8443->443/tcp
gitlab-runner-1     "/usr/bin/dumb-init …"   runner              running
postgres            "docker-entrypoint.s…"   postgres            running             0.0.0.0:25432->5432/tcp

部署,整个初始化的过程,我这边等了2-4分钟左右, 因为机器配置不是很高~~~~

修改配置

进入容器

1
docker exec -it gitlab-ce /bin/bash

修改 gitlab.rb

1
vi /etc/gitlab/gitlab.rb

gitlab.rb的配置实在是多,整个配置文件目前接近1800行;里面涵盖了日志,安全,nginx,数据库等等的所有配置,大多数配置都有默认值,所以很多东西看你的需要来开启,

在最下面加入以下代码

1
2
3
4
5
6
// gitlab地址,端口默认为80端口
external_url 'http://192.168.124.194'
// ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
// ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922

修改http和ssh配置

1
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

注意此处的 host为线上服务器IP,或者改为域名,如果没有则不需要修改

1
2
3
4
5
6
## GitLab settings
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: 192.168.124.194
    port: 9980
    https: false

修改成功后重启

1
gitlab-ctl restart

或者重载配置文件使其生效

1
gitlab-ctl reconfigure

退出容器

1
exit

使用 root 账户登录:

获取密码:

1
2
docker exec -it gitlab-ce grep 'Password:' /etc/gitlab/initial_root_password
Password: ********************************************

访问:http://localhost:9980 或者 http://0.0.0.0:9980

到这一步就成功一大半了!

登录:
通过IP访问或配置hosts后通过域名访问,获取root初始密码,24小时后失效,需及时修改密码

修改gitlab的root密码

进入容器

1
docker exec -it gitlab-ce /bin/bash

进入gitlab控制台

1
2
3
4
5
6
7
gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5) [aarch64-linux]
 GitLab:       15.9.2 (d5a415f1e66) FOSS
 GitLab Shell: 14.17.0
 PostgreSQL:   13.8
------------------------------------------------------------[ booted in 21.18s ]

查询id为1的账号,1默认是超级管理员

1
2
user = User.where(id:1).first
=> #<User id:1 @root>

修改密码 密码如果只有数字无法保存

1
2
user.password='********'
=> "********"

保存修改 如果返回true则表示保存成功

1
2
user.save!
=> true

退出容器

1
exit

中文设置

中文设置方法: 依次点击工具栏最右侧用户头 -> Settings -> Preferred language , 然后选择 “简体中文” 即可。

查看版本

查看Gitlab版本,可以在https://your.domain.name/help上查看GitLab的版本。
gitlab-version

关闭所有在运行的容器

执行命令

1
docker-compose down

引用

以上。

posted @   ministep88  阅读(16)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2022-03-03 数据分析新手小白入门学习指南,这五大知识清单值得收藏
网站更新内容:请访问:https://bigdata.ministep.cn/
点击右上角即可分享
微信分享提示