`
jzy996492849
  • 浏览: 128191 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Docker 构建持续集成CI之二 私有化GitLab容器的构建

 
阅读更多
摘要: 构建私有的GitLab 通过docker-compose的方式安装Jenkins,docker-compose这个命令需要单独安装,docker-compose会对指定目录下的docker-compose.

构建私有的GitLab
通过docker-compose的方式安装Jenkins,docker-compose这个命令需要单独安装,docker-compose会对指定目录下的docker-compose.yml文件进行执行,这个文件会一次性启动所编辑的镜像,及所要用到的参数,官方提供的yml文件内容如下:

version: '2'

services:
  redis:
    restart: always
    image: sameersbn/redis:latest
    command:
    - --loglevel warning
    volumes:
    - /srv/docker/gitlab/redis:/var/lib/redis:Z

  postgresql:
    restart: always
    image: sameersbn/postgresql:9.6-2
    volumes:
    - /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
    environment:
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production
    - DB_EXTENSION=pg_trgm

  gitlab:
    restart: always
    image: sameersbn/gitlab:9.1.4
    depends_on:
    - redis
    - postgresql
    ports:
    - "10080:80"
    - "10022:22"
    volumes:
    - /srv/docker/gitlab/gitlab:/home/git/data:Z
    environment:
    - DEBUG=false

    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production

    - REDIS_HOST=redis
    - REDIS_PORT=6379

    - TZ=Asia/Kolkata
    - GITLAB_TIMEZONE=Kolkata

    - GITLAB_HTTPS=false
    - SSL_SELF_SIGNED=false

    - GITLAB_HOST=localhost
    - GITLAB_PORT=10080
    - GITLAB_SSH_PORT=10022
    - GITLAB_RELATIVE_URL_ROOT=
    - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
    - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
    - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string

    - GITLAB_ROOT_PASSWORD=
    - GITLAB_ROOT_EMAIL=

    - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
    - GITLAB_NOTIFY_PUSHER=false

    - GITLAB_EMAIL=notifications@example.com
    - GITLAB_EMAIL_REPLY_TO=noreply@example.com
    - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com

    - GITLAB_BACKUP_SCHEDULE=daily
    - GITLAB_BACKUP_TIME=01:00

    - SMTP_ENABLED=false
    - SMTP_DOMAIN=www.example.com
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mailer@example.com
    - SMTP_PASS=password
    - SMTP_STARTTLS=true
    - SMTP_AUTHENTICATION=login

    - IMAP_ENABLED=false
    - IMAP_HOST=imap.gmail.com
    - IMAP_PORT=993
    - IMAP_USER=mailer@example.com
    - IMAP_PASS=password
    - IMAP_SSL=true
    - IMAP_STARTTLS=false

    - OAUTH_ENABLED=false
    - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
    - OAUTH_ALLOW_SSO=
    - OAUTH_BLOCK_AUTO_CREATED_USERS=true
    - OAUTH_AUTO_LINK_LDAP_USER=false
    - OAUTH_AUTO_LINK_SAML_USER=false
    - OAUTH_EXTERNAL_PROVIDERS=

    - OAUTH_CAS3_LABEL=cas3
    - OAUTH_CAS3_SERVER=
    - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
    - OAUTH_CAS3_LOGIN_URL=/cas/login
    - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
    - OAUTH_CAS3_LOGOUT_URL=/cas/logout

    - OAUTH_GOOGLE_API_KEY=
    - OAUTH_GOOGLE_APP_SECRET=
    - OAUTH_GOOGLE_RESTRICT_DOMAIN=

    - OAUTH_FACEBOOK_API_KEY=
    - OAUTH_FACEBOOK_APP_SECRET=

    - OAUTH_TWITTER_API_KEY=
    - OAUTH_TWITTER_APP_SECRET=

    - OAUTH_GITHUB_API_KEY=
    - OAUTH_GITHUB_APP_SECRET=
    - OAUTH_GITHUB_URL=
    - OAUTH_GITHUB_VERIFY_SSL=

    - OAUTH_GITLAB_API_KEY=
    - OAUTH_GITLAB_APP_SECRET=

    - OAUTH_BITBUCKET_API_KEY=
    - OAUTH_BITBUCKET_APP_SECRET=

    - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
    - OAUTH_SAML_IDP_CERT_FINGERPRINT=
    - OAUTH_SAML_IDP_SSO_TARGET_URL=
    - OAUTH_SAML_ISSUER=
    - OAUTH_SAML_LABEL="Our SAML Provider"
    - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
    - OAUTH_SAML_GROUPS_ATTRIBUTE=
    - OAUTH_SAML_EXTERNAL_GROUPS=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
    - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=

    - OAUTH_CROWD_SERVER_URL=
    - OAUTH_CROWD_APP_NAME=
    - OAUTH_CROWD_APP_PASSWORD=

    - OAUTH_AUTH0_CLIENT_ID=
    - OAUTH_AUTH0_CLIENT_SECRET=
    - OAUTH_AUTH0_DOMAIN=

    - OAUTH_AZURE_API_KEY=
    - OAUTH_AZURE_API_SECRET=
    - OAUTH_AZURE_TENANT_ID=
在docker-compose.yml文件所在目录下,执行docker-compose up命令,如果之前没有下载过GitLab的镜像会自动下载,如果下载过就直接启动已有的容器。
这里会在docker创建一个新的网桥,gitlab所需要的gitlab容器和redis容器及postsql容器都在这个网桥指定的网段内,可以通过docker network ls查看,通常为你yml文件所在目录的小写加上下划线default,例如mygitlab_default,这个很有用,因为如果你想要容器内部互联,就需要指定所要连接的容器在一个网段内,例如jenkins容器如果想内部连接gitlab容器,就得都在mygitlab_default这个网桥提供的网段内
分享到:
评论

相关推荐

    k8s+docker+Jenkins+git持续集成与持续发布

    持续集成(CI)和持续发布(CD)是软件开发中的一种实践,旨在提高软件的质量和交付速度。 在这个案例中,我们将使用 k8s、Docker、Jenkins 和 Git 来实现持续集成与持续发布。该案例将涵盖以下知识点: 1. k8s ...

    可jarpom持续化构建

    2. **构建服务器**:为了实现持续集成,我们需要一个构建服务器,如Jenkins、GitLab CI/CD或Travis CI等。这些工具可以监听代码仓库的变化,并在代码提交时自动触发构建。 3. **版本控制**:使用像Git这样的版本...

    GitLab安装文档1

    GitLab安装文档1 GitLab是一个流行的开源代码管理系统,它基于Git并提供了一个Web界面,让用户可以方便地管理和协作开发项目...在实际的持续集成/持续部署(CI/CD)流程中,这样的集成对于自动化软件开发流程至关重要。

    饿了么基于容器的混合云实践.rar

    容器化的另一个优势是持续集成/持续部署(CI/CD)流程的优化。通过Jenkins、GitLab CI/CD等工具,饿了么能够快速构建、测试和部署新代码,加速产品迭代。 总的来说,这个实践案例展示了如何通过技术创新来应对...

    基于linux下Jenkins+gradle+gitlab+Android studio实现APP自动打包详细教程.docx

    - **定义**: Jenkins 是一个开源软件项目,是持续集成(CI)和持续部署(CD)的工具之一。它支持构建、测试和部署软件项目。 - **运行模式**: Jenkins 可以作为一个独立的应用程序运行,并自带 Java servlet 容器/应用...

    支持容器的开放混合云.zip

    5. **持续集成/持续部署(CI/CD)**:Jenkins、GitLab CI/CD 或者 Tekton 等工具可以帮助实现自动化构建、测试和部署JavaEE应用到不同的云环境。 6. **监控和日志**:Prometheus、Grafana、ELK Stack(Elastic...

    容器技术在互联网企业的实践.pptx

    这类平台通常包括自动化的镜像构建流程,例如通过持续集成/持续部署(CI/CD)工具,如Jenkins或GitLab CI,将代码提交、静态代码扫描、单测、自动化测试直至API一致性检查集成在一起。镜像构建完成后,会存入私有的...

    云原生架构师之DevOps技术栈20201207公开课.pdf

    持续集成(CI)是指频繁地(一天多次)将代码集成到主干,每次集成都通过自动化的构建(包括编译、发布)和自动化测试来验证,目的是尽快发现集成错误。 6. 持续集成与持续部署(CI/CD):在持续集成的基础上,持续...

    基于混合云的应用部署平台构建实践.zip

    使用Jenkins、GitLab CI/CD或Azure DevOps等工具,可以自动化代码构建、测试和发布过程,确保应用能够快速、可靠地部署到混合云环境。 总的来说,构建基于混合云的应用部署平台涉及多个层面:选择合适的基础设施、...

    nodejs-ci-cd

    - **CircleCI**:云托管的CI服务,易于配置,适合Docker容器化部署。 - **GitLab CI/CD**:GitLab内置的CI/CD工具,与版本控制紧密集成。 **1.3 配置CI** 在`.gitlab-ci.yml`或`.travis.yml`等文件中定义构建流程,...

    架构演进:汽车之家架构分析.zip

    9. **持续集成/持续部署(CI/CD)**:为了加速软件交付和提高质量,汽车之家可能实施了CI/CD流程,利用Jenkins、GitLab CI/CD等工具,实现自动化测试和部署。 通过这份《架构演进:汽车之家架构分析》的学习资料,...

    gitlap

    4. **持续集成/持续部署(CI/CD)**:GitLab内置了强大的CI/CD工具,用户可以直接在GitLab配置CI/CD流程,实现自动化测试、构建和部署。这大大提高了开发效率,减少了人为错误。 5. **Docker集成**:GitLab支持与...

    云原生(cloud native)

    - **持续集成/持续部署(CI/CD)**:自动化构建、测试和部署流程,提高开发效率和质量。 - **声明式API**:允许用户定义期望的应用状态,而不是指定如何达到该状态的具体步骤。 - **动态编排**:使用工具(如...

    石建松-混合云下的DevOps在vivo互联网的探索落地.zip

    1. 持续集成/持续部署(CI/CD):在混合云环境下,vivo可能采用Jenkins、GitLab CI/CD等工具实现代码自动构建和测试,确保代码质量,并通过自动化流程将合格的软件快速部署到生产环境。 2. 配置管理:通过Ansible、...

    Ubuntu+Server最佳方案[高清完整PDF版].

    10. **持续集成/持续部署(CI/CD)**:Ubuntu Server配合Jenkins、GitLab CI/CD等工具,可实现自动化测试和部署流程,提高开发效率。 在阅读这份《Ubuntu Server最佳方案》时,你将了解到如何规划、安装、配置和管理...

    成都计算机软件行业运维工程师岗位介绍JD模板.pdf

    7. **持续集成/持续部署(CI/CD)**:熟悉Jenkins或Gitlab CI,能够进行自动化构建和部署配置。 8. **负载均衡**:熟悉F5、A10等企业级负载均衡设备的配置,保证系统高可用性和性能。 9. **中间件**:了解TYK、KONG...

    大型供应链系统技术架构设计方案.pptx

    - **持续集成/持续部署(CI/CD)**:借助Jenkins、GitLab CI等工具实现自动化测试和部署,提高软件交付效率。 - **监控管理**:通过Prometheus、Grafana等工具实现系统性能的实时监控和可视化展示。 - **容器管理**:...

    masterclass-codeexamples:进入DevOps:Masterclass中使用的代码示例

    10. GitLab-CI:GitLab持续集成/持续部署(CI/CD)工具,集成在GitLab版本控制系统中,支持自动化测试和部署流程。 11. ECS (Elastic Container Service):Amazon Web Services (AWS) 的一项服务,用于托管和运行容器...

    Gogs是一个轻松的自托管Git服务.zip

    6. **持续集成**:Gogs 可以与常见的持续集成工具(如Jenkins、Travis CI等)集成,实现自动化测试和构建。 7. **Web钩子**:Gogs 支持Web钩子,可以触发外部服务在代码推送时执行特定的操作,如自动化部署。 8. *...

    云计算技术与应用赛题库

    9. **DevOps与持续集成/持续部署(CI/CD)**:在云计算环境下,Java应用的开发、测试和部署过程需要高效自动化, Jenkins、GitLab CI/CD等工具帮助实现这一目标,提高软件开发效率和质量。 10. **云计算案例分析**:...

Global site tag (gtag.js) - Google Analytics