https://www.cnblogs.com/cjsblog/p/12256843.html
https://www.jianshu.com/p/080a962c35b6
https://www.cnblogs.com/diaomina/p/12830449.html
https://hub.docker.com/r/twang2218/gitlab-ce-zh
https://www.cnblogs.com/zzhaolei/p/11063345.html
# docker-componse.yml
version: '3'
services:
gitlab:
image: 'twang2218/gitlab-ce-zh'
restart: unless-stopped
hostname: 'gitlab.example.com'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.0.103:9980'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_ssh_host'] = '192.168.0.103'
gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 需要配置到 gitlab.rb 中的配置可以在这里配置,每个配置一行,注意缩进。
# 比如下面的电子邮件的配置:
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
# gitlab_rails['smtp_password'] = "password"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = true
# gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
ports:
- '9980:9980'
- '9922:22'
volumes:
- /home/gitlab/etc:/etc/gitlab
- /home/gitlab/log:/var/log/gitlab
- /home/gitlab/opt:/var/opt/gitlab
deploy:
placement:
constraints:
- node.hostname == worker1
runner:
image: 'gitlab/gitlab-runner'
container_name: gitlab-runner
restart: always
volumes:
- /home/gitlab/runner:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
deploy:
placement:
constraints:
- node.hostname == worker1
docker exec -it gitlab /bin/bash
# 打开文件
vim /etc/gitlab/gitlab.rb
# 这个文件是全注释掉了的,所以直接在首行添加如下配置
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口 (图片上拼写错误,正确的是external_url)
external_url 'http://192.168.0.103:9980'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.0.103'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
:x
gitlab-ctl reconfigure
gitlab-ctl restart
exit;
http://192.168.0.103:9980/help/ssh/README#generating-a-new-ssh-key-pair
打开git窗口,cmd窗口是没有办法执行命令的
ssh-keygen -t rsa -C "514840279@qq.com" -b 4096

在windows中找到生成文件 一般在 “C:\Users\Administrator.ssh”
Administrator 是你的系统登录用户名称
复制id_rsa.pub文件中的内容到gitlib的ssh上自己的用户

然后就可以在新建的项目上找到ssh命令 clone 到本地

http://192.168.0.103:9980/help/ci/quick_start/README

按要求 创建一个 .gitlab-ci.yml

gitlib running 需要在kubernetes 上执行,目前放弃

使用docker swarm 配置gitrunner
https://blog.csdn.net/zhangruhong168/article/details/78924700

# 进入 runner 容器
docker exec -it a446dceb9e4d7bdeeb4660132e628fa833870b0ad63391b058c9aa80758743ca bash
# 注册 runner
gitlab-runner register
# 输入 gitlab 示例的 url
http://192.168.0.103:9980/
# 输入用来注册 runner 的 token
cpisdPjUGYzfoPCs2yHY
# 输入 runner 的描述,随后可在 gitlab 界面中修改
gitlab-ci
# 输入与 runner 绑定的标签(可修改)
gitlab-ci
# 选择 runner 的执行方式(推荐docker)
docker
# 如果选择的执行方式是 docker,会要求填写默认的镜像
alpine:latest

配置玩会在CI中显示runner的信息

https://www.freesion.com/article/3042658032/
https://blog.csdn.net/zhwillwin/article/details/86776948
代码中创建 ..gitlab-ci.yml
variables: #变量
MAVEN_OPTS: "-Dmaven.repo.local=/home/.m2/repository" #指定maven的存储目录
stages:
- build
build:jdk8:
stage: build
script:
- echo "=============== 开始编译打包任务 ==============="
- mvn clean package -Dmaven.test.skip=true
- cd danyuan-gateway && mvn docker:build -DpushImage
# - cd danyuan-serve && mvn docker:build -DpushImage
artifacts:
paths:
- build/
only:
- master #当有代码合到主干时触发这个job
tags:
- danyuan-tools
image: maven:3.3.9-jdk-8
···
settint.xml 中无法设置私服的maven代理,我估计是因为使用dockerswarm 的关系,应该使用host的网络模式,跟redis一个熊样。
···

<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
# docker 应该是网络不通无法访问 103 runner 必须用host才可以
<mirror>
<id>maven-public</id>
<mirrorOf>central</mirrorOf>
<name>maven-public</name>
<url>http://192.168.0.103:9001/repository/maven-public/</url>
</mirror>
| -->
</mirrors>



当有代码提交操作时候自动触发任务执行

点波关注 系统搭建(docker)
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的