• 「番外篇」如何用Git平台账号登录建木CI with docker-compose.yml


    前言

    迄今为止,建木一共集成了四个Git平台用于建木CI登录(GiteeGitlinkGitlabGitea

    这篇文章主要讲讲如何在建木官方的docker-compose启动脚本里面加上环境变量来改变建木CI的Git登录平台

    开始操作
     

    用户名密码登录

    执行命令wget https://gitee.com/jianmu-dev/jianmu-deploy/raw/master/docker-compose.yml,

    将官方的启动脚本拉取下来

    1. version: '3'
    2. services:
    3. jianmu-mysql:
    4. image: mysql:8
    5. command: --init-connect='SET NAMES utf8' --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=1200 --max-user-connections=1000
    6. ports:
    7. - "3306:3306"
    8. restart: always
    9. environment:
    10. MYSQL_ROOT_PASSWORD: 123456
    11. MYSQL_DATABASE: "jianmu"
    12. TZ: "Asia/Shanghai"
    13. ci-server:
    14. image: jianmudev/jianmu-ci-server:v2.5.4
    15. restart: always
    16. environment:
    17. SPRING_PROFILES_ACTIVE: dev
    18. SPRING_DATASOURCE_URL: jdbc:mysql://jianmu-mysql:3306/jianmu?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
    19. SPRING_DATASOURCE_USERNAME: root
    20. SPRING_DATASOURCE_PASSWORD: 123456
    21. JIANMU_WORKER_SECRET: worker-secret
    22. JIANMU_API_ADMINPASSWD: 123456
    23. # REGISTRY_AK:
    24. # REGISTRY_SK:
    25. volumes:
    26. - /mnt/jianmu/ci:/ci
    27. depends_on:
    28. - jianmu-mysql
    29. entrypoint: ["/wait-for-it.sh", "jianmu-mysql:3306", "-t", "0", "--", "java", "-Duser.timezone=Asia/Shanghai", "-cp", "/app/resources:/app/classes:/app/libs/*", "dev.jianmu.api.SpringbootApp"]
    30. worker:
    31. image: jianmudev/jianmu-worker-docker:v1.0.2
    32. restart: always
    33. environment:
    34. JIANMU_SRV_ADDRESS: http://ci-server:8081
    35. JIANMU_SRV_SECRET: worker-secret
    36. JIANMU_WORKER_ID: worker1
    37. # 可同时并发的容器数量,默认为2
    38. JIANMU_WORKER_CAPACITY: 5
    39. volumes:
    40. - /var/run/docker.sock:/var/run/docker.sock
    41. depends_on:
    42. - jianmu-mysql
    43. - ci-server
    44. web:
    45. image: jianmudev/jianmu-ci-ui:v2.5.4
    46. ports:
    47. - "80:80"
    48. - "443:443"
    49. restart: always
    50. depends_on:
    51. - jianmu-mysql
    52. - ci-server
    53. networks:
    54. default:
    55. ipam:
    56. config:
    57. - subnet: 10.1.0.0/16

    使用默认脚本启动建木
     

    • 进入初始界面

    • 开始登录,默认的脚本里使用默认的用户名密码来登录

    • 用户名密码登录成功

    Gitee登录

    在默认的 docker-compose.yml 脚本里加入oauth2和Gitee平台的相关配置,如下

    1. version: '3'
    2. services:
    3. jianmu-mysql:
    4. image: mysql:8
    5. command: --init-connect='SET NAMES utf8' --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=1200 --max-user-connections=1000
    6. ports:
    7. - "3306:3306"
    8. restart: always
    9. environment:
    10. MYSQL_ROOT_PASSWORD: 123456
    11. MYSQL_DATABASE: "jianmu"
    12. TZ: "Asia/Shanghai"
    13. ci-server:
    14. image: jianmudev/jianmu-ci-server:v2.5.4
    15. restart: always
    16. environment:
    17. SPRING_PROFILES_ACTIVE: dev
    18. SPRING_DATASOURCE_URL: jdbc:mysql://jianmu-mysql:3306/jianmu?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
    19. SPRING_DATASOURCE_USERNAME: root
    20. SPRING_DATASOURCE_PASSWORD: 123456
    21. JIANMU_WORKER_SECRET: worker-secret
    22. JIANMU_API_ADMINPASSWD: 123456
    23. #----------------------------------多了以下配置--------------------------------------
    24. # oauth2
    25. JIANMU_OAUTH2_ALLOW-REGISTRATION: 'true'
    26. # gitee
    27. JIANMU_OAUTH2_GITEE_RESPONSE-TYPE: code
    28. JIANMU_OAUTH2_GITEE_GRANT-TYPE: authorization_code
    29. JIANMU_OAUTH2_GITEE_TOKEN-URL: https://gitee.com/oauth/token
    30. JIANMU_OAUTH2_GITEE_CODE-URL: https://gitee.com/oauth/authorize
    31. JIANMU_OAUTH2_GITEE_API-URL: https://gitee.com/api/v5/
    32. JIANMU_OAUTH2_GITEE_CLIENT-SECRET: xxxxxxxxxxxxxxxxxxxx
    33. JIANMU_OAUTH2_GITEE_CLIENT-ID: xxxxxxxxxxxxxxxxxxxxx
    34. JIANMU_OAUTH2_GITEE_SCOPE: user_info
    35. #-----------------------------------多了以上配置--------------------------------------
    36. # REGISTRY_AK:
    37. # REGISTRY_SK:
    38. volumes:
    39. - /mnt/jianmu/ci:/ci
    40. depends_on:
    41. - jianmu-mysql
    42. entrypoint: ["/wait-for-it.sh", "jianmu-mysql:3306", "-t", "0", "--", "java", "-Duser.timezone=Asia/Shanghai", "-cp", "/app/resources:/app/classes:/app/libs/*", "dev.jianmu.api.SpringbootApp"]
    43. worker:
    44. image: jianmudev/jianmu-worker-docker:v1.0.2
    45. restart: always
    46. environment:
    47. JIANMU_SRV_ADDRESS: http://ci-server:8081
    48. JIANMU_SRV_SECRET: worker-secret
    49. JIANMU_WORKER_ID: worker1
    50. # 可同时并发的容器数量,默认为2
    51. JIANMU_WORKER_CAPACITY: 5
    52. volumes:
    53. - /var/run/docker.sock:/var/run/docker.sock
    54. depends_on:
    55. - jianmu-mysql
    56. - ci-server
    57. web:
    58. image: jianmudev/jianmu-ci-ui:v2.5.4
    59. ports:
    60. - "80:80"
    61. - "443:443"
    62. restart: always
    63. depends_on:
    64. - jianmu-mysql
    65. - ci-server
    66. networks:
    67. default:
    68. ipam:
    69. config:
    70. - subnet: 10.1.0.0/16
    • 进入初始界面

    • 开始登录,提示使用Gitee平台登录

    • 进入Gitee界面进行授权

    • 登录中

    • 登录成功

     

    Gitea登录

    在默认的docker-compose.yml脚本里加入oauth2和Gitea平台的相关配置,如下

    1. version: '3'
    2. services:
    3. jianmu-mysql:
    4. image: mysql:8
    5. command: --init-connect='SET NAMES utf8' --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=1200 --max-user-connections=1000
    6. ports:
    7. - "3306:3306"
    8. restart: always
    9. environment:
    10. MYSQL_ROOT_PASSWORD: 123456
    11. MYSQL_DATABASE: "jianmu"
    12. TZ: "Asia/Shanghai"
    13. ci-server:
    14. image: jianmudev/jianmu-ci-server:v2.5.4
    15. restart: always
    16. environment:
    17. SPRING_PROFILES_ACTIVE: dev
    18. SPRING_DATASOURCE_URL: jdbc:mysql://jianmu-mysql:3306/jianmu?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
    19. SPRING_DATASOURCE_USERNAME: root
    20. SPRING_DATASOURCE_PASSWORD: 123456
    21. JIANMU_WORKER_SECRET: worker-secret
    22. JIANMU_API_ADMINPASSWD: 123456
    23. #----------------------------------多了以下配置--------------------------------------
    24. # oauth2
    25. JIANMU_OAUTH2_ALLOW-REGISTRATION: 'true'
    26. # gitea
    27. JIANMU_OAUTH2_GITEA_RESPONSE-TYPE: code
    28. JIANMU_OAUTH2_GITEA_GRANT-TYPE: authorization_code
    29. JIANMU_OAUTH2_GITEA_TOKEN-URL: http://ip:port/login/oauth/access_token
    30. JIANMU_OAUTH2_GITEA_CODE-URL: http://ip:port/login/oauth/authorize
    31. JIANMU_OAUTH2_GITEA_API-URL: http://ip:port/api/v1/
    32. JIANMU_OAUTH2_GITEA_CLIENT-ID: xxxxxxxxxxxxxxxxxxxxxxx
    33. JIANMU_OAUTH2_GITEA_CLIENT-SECRET: xxxxxxxxxxxxxxxxxxxxxxx
    34. #-----------------------------------多了以上配置--------------------------------------
    35. # REGISTRY_AK:
    36. # REGISTRY_SK:
    37. volumes:
    38. - /mnt/jianmu/ci:/ci
    39. depends_on:
    40. - jianmu-mysql
    41. entrypoint: ["/wait-for-it.sh", "jianmu-mysql:3306", "-t", "0", "--", "java", "-Duser.timezone=Asia/Shanghai", "-cp", "/app/resources:/app/classes:/app/libs/*", "dev.jianmu.api.SpringbootApp"]
    42. worker:
    43. image: jianmudev/jianmu-worker-docker:v1.0.2
    44. restart: always
    45. environment:
    46. JIANMU_SRV_ADDRESS: http://ci-server:8081
    47. JIANMU_SRV_SECRET: worker-secret
    48. JIANMU_WORKER_ID: worker1
    49. # 可同时并发的容器数量,默认为2
    50. JIANMU_WORKER_CAPACITY: 5
    51. volumes:
    52. - /var/run/docker.sock:/var/run/docker.sock
    53. depends_on:
    54. - jianmu-mysql
    55. - ci-server
    56. web:
    57. image: jianmudev/jianmu-ci-ui:v2.5.4
    58. ports:
    59. - "80:80"
    60. - "443:443"
    61. restart: always
    62. depends_on:
    63. - jianmu-mysql
    64. - ci-server
    65. networks:
    66. default:
    67. ipam:
    68. config:
    69. - subnet: 10.1.0.0/16
    • 进入初始界面

    • 开始登录,提示使用Gitea平台登录

    • 进入Gitea进行授权

    • 登录成功

    GitLink登录

    在默认的 docker-compose.yml 脚本里加入oauth2和Gitlink平台的相关配置,如下

    version: '3'services:  jianmu-mysql:    image: mysql:8    command: --init-connect='SET NAMES utf8' --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=1200 --max-user-connections=1000    ports:      - "3306:3306"    restart: always    environment:      MYSQL_ROOT_PASSWORD: 123456      MYSQL_DATABASE: "jianmu"      TZ: "Asia/Shanghai"  ci-server:    image: jianmudev/jianmu-ci-server:v2.5.4    restart: always    environment:      SPRING_PROFILES_ACTIVE: dev      SPRING_DATASOURCE_URL: jdbc:mysql://jianmu-mysql:3306/jianmu?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true      SPRING_DATASOURCE_USERNAME: root      SPRING_DATASOURCE_PASSWORD: 123456      JIANMU_WORKER_SECRET: worker-secret      JIANMU_API_ADMINPASSWD: 123456      #----------------------------------多了以下配置--------------------------------------      # oauth2      JIANMU_OAUTH2_ALLOW-REGISTRATION: 'true'      # gitlink      JIANMU_OAUTH2_GITLINK_GRANT-TYPE: authorization_code      JIANMU_OAUTH2_GITLINK_SCOPE: user_info      JIANMU_OAUTH2_GITLINK_RESPONSE-TYPE: code      JIANMU_OAUTH2_GITLINK_CLIENT-ID: xxxxxxxxxxxxxxxxxx      JIANMU_OAUTH2_GITLINK_CLIENT-SECRET: xxxxxxxxxxxxxxxx      JIANMU_OAUTH2_GITLINK_TOKEN-URL: https://www.gitlink.org.cn/oauth/token      JIANMU_OAUTH2_GITLINK_API-URL: https://www.gitlink.org.cn/api/      JIANMU_OAUTH2_GITLINK_BASE-URL: https://www.gitlink.org.cn/      #-----------------------------------多了以上配置--------------------------------------#      REGISTRY_AK:#      REGISTRY_SK:    volumes:      - /mnt/jianmu/ci:/ci    depends_on:      - jianmu-mysql    entrypoint: ["/wait-for-it.sh", "jianmu-mysql:3306", "-t", "0", "--", "java", "-Duser.timezone=Asia/Shanghai", "-cp", "/app/resources:/app/classes:/app/libs/*", "dev.jianmu.api.SpringbootApp"]  worker:    image: jianmudev/jianmu-worker-docker:v1.0.2    restart: always    environment:      JIANMU_SRV_ADDRESS: http://ci-server:8081      JIANMU_SRV_SECRET: worker-secret      JIANMU_WORKER_ID: worker1      # 可同时并发的容器数量,默认为2      JIANMU_WORKER_CAPACITY: 5    volumes:      - /var/run/docker.sock:/var/run/docker.sock    depends_on:      - jianmu-mysql      - ci-server  web:    image: jianmudev/jianmu-ci-ui:v2.5.4    ports:      - "80:80"      - "443:443"    restart: always    depends_on:      - jianmu-mysql      - ci-server
    networks:  default:    ipam:      config:        - subnet: 10.1.0.0/16
    • 进入初始界面

    • 提示使用Gitlink登录

    • 进入Gitlink进行授权


     

    • 登录成功
       

    GitLab登录

    在默认的docker-compose.yml脚本里加入oauth2和Gitlab平台的相关配置,如下

    version: '3'services:  jianmu-mysql:    image: mysql:8    command: --init-connect='SET NAMES utf8' --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=1200 --max-user-connections=1000    ports:      - "3306:3306"    restart: always    environment:      MYSQL_ROOT_PASSWORD: 123456      MYSQL_DATABASE: "jianmu"      TZ: "Asia/Shanghai"  ci-server:    image: jianmudev/jianmu-ci-server:v2.5.4    restart: always    environment:      SPRING_PROFILES_ACTIVE: dev      SPRING_DATASOURCE_URL: jdbc:mysql://jianmu-mysql:3306/jianmu?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true      SPRING_DATASOURCE_USERNAME: root      SPRING_DATASOURCE_PASSWORD: 123456      JIANMU_WORKER_SECRET: worker-secret      JIANMU_API_ADMINPASSWD: 123456      #----------------------------------多了以下配置--------------------------------------      # oauth2      JIANMU_OAUTH2_ALLOW-REGISTRATION: 'true'      # gitlab      JIANMU_OAUTH2_GITLAB_RESPONSE-TYPE: code      JIANMU_OAUTH2_GITLAB_GRANT-TYPE: authorization_code      JIANMU_OAUTH2_GITLAB_SCOPE: api      JIANMU_OAUTH2_GITLAB_TOKEN-URL: http://ip:port/oauth/token      JIANMU_OAUTH2_GITLAB_CODE-URL: http://ip:port/oauth/authorize      JIANMU_OAUTH2_GITLAB_API-URL: http://ip:port/api/v4/      JIANMU_OAUTH2_GITLAB_CLIENT-ID: xxxxxxxxxxxxxxxxxxxxxx      JIANMU_OAUTH2_GITLAB_CLIENT-SECRET: xxxxxxxxxxxxxxxxxxx      #-----------------------------------多了以上配置--------------------------------------#      REGISTRY_AK:#      REGISTRY_SK:    volumes:      - /mnt/jianmu/ci:/ci    depends_on:      - jianmu-mysql    entrypoint: ["/wait-for-it.sh", "jianmu-mysql:3306", "-t", "0", "--", "java", "-Duser.timezone=Asia/Shanghai", "-cp", "/app/resources:/app/classes:/app/libs/*", "dev.jianmu.api.SpringbootApp"]  worker:    image: jianmudev/jianmu-worker-docker:v1.0.2    restart: always    environment:      JIANMU_SRV_ADDRESS: http://ci-server:8081      JIANMU_SRV_SECRET: worker-secret      JIANMU_WORKER_ID: worker1      # 可同时并发的容器数量,默认为2      JIANMU_WORKER_CAPACITY: 5    volumes:      - /var/run/docker.sock:/var/run/docker.sock    depends_on:      - jianmu-mysql      - ci-server  web:    image: jianmudev/jianmu-ci-ui:v2.5.4    ports:      - "80:80"      - "443:443"    restart: always    depends_on:      - jianmu-mysql      - ci-server
    networks:  default:    ipam:      config:        - subnet: 10.1.0.0/16
    • 进入初始界面

    • 提示使用Gitlab登录


     

    • 进入Gitlab进行授权


     

    • 登录成功
       

    官⽹:https://jianmu.dev

    代码:https://gitee.com/jianmu-dev

    文档:https://docs.jianmu.dev

    示例:https://ci.jianmu.dev

  • 相关阅读:
    百度OCR 接口调用 提示 216101:param image not exist 问题解决
    飞行器翼尖加速度和控制面的MPC控制
    unity面试八股文 - 基础篇
    YOLOv7训练自己的数据集
    【MotionCap】conda 链接缺失的cuda库
    小米被曝提议“禁止安卓手机提取 APK 文件”,Google:我拒绝
    解密Prompt系列15. LLM Agent之数据库应用设计:DIN & C3 & SQL-Palm & BIRD
    若依框架RuoYi项目运行启动教程【傻瓜式教程】
    redis-持久化
    分享我做Dotnet9博客网站时积累的一些资料
  • 原文地址:https://blog.csdn.net/Jianmu_Dev/article/details/126831778