Tag: gitlab

使用gitlab CI构builddocker镜像并推送到自签名的https nexus repo

我有一个gitlab CI设置,我想要构build并推入docker镜像,第一个问题是我的nexus repo不是https。 实际的错误信息是这样的: 来自守护进程的错误响应:获取http://some.host:port/v2/:http :服务器给予HTTPS客户端的HTTP响应 要build立docker图像,我们使用docker:latest image,并且我找不到将主机添加为不安全registry的方式.gitlab-ci.yml 所以一个自我签署我的联系存储库希望它会解决,但它也没有工作,并提供以下错误信息: 来自守护程序的错误响应:获取https://some.host:port/v2/:x509 :由未知权威签名的证书 这是我目前的CI设置: image: docker:latest services: – docker:dind before_script: – docker info – docker login -u USER -p PASSWORD some.host:port stages: – build build-image: stage: build script: – docker build -t some.host:port/image:alpine . – docker push some.host:port/image:alpine only: – master when: manual 那么有没有一个简单的解决scheme或现有的docker图像,我可以configuration不安全的registry可能是一些docker魔术与命令行我真的需要创build一个自己的形象来解决这个问题?

在GitLab CI包构build中cachinggem

我正在使用Docker镜像来运行一堆存储库的testing。 每个存储库都有自己的testing,当然也有自己的Gemfile。 所以,基本上,每当我对这些存储库进行提交时,就开始一个新的构build。 在这个版本中,GitLab: 下载Docker镜像。 安装所有需要的gem。 运行testing。 Docker镜像有一些预装的包,比如ruby或者gcc,所以我不会在每次构build时重新安装这些包,但是我仍然需要安装所有的gem,因为每个仓库都有它自己的Gemfile,它们有点不一样。 事情是,我能做些什么来提高构build时间? 我使用build install命令浪费了大量的时间,并且大部分时间都是反复为每个存储库安装相同的软件包。

使用Docker为Ci和Runners安装Gitlab CI,并在重启后使其持久化

我有一个运行Gitlab的服务器。 假设地址是https://gitlab.mydomain.com 。 现在我想要实现的是安装一个持续集成系统。 因为我正在使用Gitlab,所以我select了Gitlab CI,因为它感觉更自然。 所以我去Docker回购,我发现这个形象 。 所以我运行图像创build一个容器与以下 docker run –restart=always -d -p 9000:9000 -e GITLAB_URLS="https://gitlab.mydomain.com" anapsix/gitlab-ci 我给它一分钟启动,我现在可以通过URL http://gitlab.mydomain.com:9000访问CI。 到现在为止还挺好。 我login了CI,我受到这个消息的欢迎: Now you need Runners to process your builds. 所以我回到了Docker Hub,我find了这个其他的图片 。 显然要启动这个图像,我必须做到交互。 我按照说明,它会创buildconfiguration文件: mkdir -p /opt/gitlab-ci-runner docker run –name gitlab-ci-runner -it –rm -v /opt/gitlab-ci-runner:/home/gitlab_ci_runner/data sameersbn/gitlab-ci-runner:5.0.0-1 app:setup 交互式设置会询问我需要的正确数据: Please enter the gitlab-ci coordinator URL […]

docker工人jenkins如何在另一个docker工人访问gitlab的git-repo

我在同一台服务器(我的笔记本电脑)上安装了gitlab-docker和jenkins-docker : docker run –name gitlab-postgresql -d \ –env 'DB_NAME=gitlabhq_production' \ –env 'DB_USER=gitlab' –env 'DB_PASS=password' \ –volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \ quay.io/sameersbn/postgresql:9.4-5 docker run –name gitlab-redis -d \ –volume /srv/docker/gitlab/redis:/var/lib/redis \ quay.io/sameersbn/redis:latest docker run –name gitlab -d \ –link gitlab-postgresql:postgresql –link gitlab-redis:redisio \ –publish 10022:22 –publish 80:80 \ –env 'GITLAB_PORT=10080' –env 'GITLAB_SSH_PORT=10022' \ –env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \ –volume […]

将docker部署到heroku,而不使用heroku docker插件

假设我正在开发一个在我自己的ci服务器上运行gitlab-ci shell runner的web项目来构builddocker并将其部署到heroku,并且我已经从gitlab和heroku(像gitlab-ci)中看过一些文档:using docker构build和heroku:与Docker构build和部署 。 我可以在不使用heroku-docker插件的情况下部署docker项目,这对我来说似乎不那么灵活吗? 不过我试过,下面的方法构build成功部署到heroku,但应用程序崩溃。 Heroku的日志说package.json中缺lessstart脚本,但是由于我正在部署docker项目,所以我不能做"start": "docker-compose up" ,可以吗? #.gitlab-ci.yml stages: – deploy before_script: – npm install – bower install dev: stage: deploy script: – docker-compose run nginx run-test – gem install dpl – dpl –provider=heroku –app=xixi-web-dev –api-key=$HEROKU_API_KEY only: – dev # docker-compose.yml app: build: . volumes: – .:/code:ro expose: – "3000" working_dir: […]

无法连接到泊坞窗上的本地主机

我正在使用Gitlab中使用docker的集成configuration项。 我的源代码已被放置在框中,并使用maven,我build立一个简单的Web服务与Spring作为一个可执行的jar运行。 问题是当我尝试使用curl -I http://127.0.0.1:8080/连接到Web服务 “curl:(7)无法连接到127.0.0.1端口8080:连接被拒绝”返回。 现在,因为docker镜像是我创build的镜像,所以我可以使用docker run -t -i <container name> /bin/bash在本地login容器并testing操作。 在这种情况下,我可以从Web服务器获得响应。 有谁知道为什么在gitlab基础设施上使用curl不起作用? 请注意我也试过: curl-I http://127.0.0.1:8080/ curl -I http://0.0.0.0:8080/ curl -I http:// localhost:8080 /

Gitlab链接到“https:// gitlab /”

我从官方图像gitlab/gitlab-ce:latest在docker容器中安装了gitlab。 该图像具有文件gitlab.rb中的所有configuration。 Https是由一个nginx反向代理完成的。 我的问题是,当gitlab有自己的绝对链接时,它总是链接到https://gitlab/ 。 这个主机也可以在“新build组”对话框中看到: Docker调用: docker run \ –name git \ –net mydockernet \ –ip 172.18.0.2 \ –hostname git.mydomain.com \ –restart=always \ -p 766:22 \ -v /docker/gitlab/config:/etc/gitlab \ -v /docker/gitlab/logs:/var/log/gitlab \ -v /docker/gitlab/data:/var/opt/gitlab \ -d \ gitlab/gitlab-ce:latest gitlab.rb: external_url 'https://git.mydomain.com' ci_nginx['enable'] = false nginx['listen_port'] = 80 nginx['listen_https'] = false gitlab_rails['gitlab_shell_ssh_port'] = 766 Nginxconfiguration: […]

无法通过runit在Gitlab Docker容器中自动启动Subgit同步

我本地的Gitlab CE Docker容器包含了Subgit。 当Gitlab容器重新启动时,Subgit同步也应该自动启动。 我的解决scheme来自于Dockerhub上的gitlab / gitlab-ce的原始Dockerfile。 在原始的Dockerfile中,已经添加了一个SSH守护进程,并在runit的控制下进行了设置。 我也和Subgit一样。 在/ opt / gitlab / sv / subgit下是我的runit资源,通过设置软链接到/ opt / gitlab / service目录来启用子文件。 但是,当Gitlab容器启动软链接被删除,因此runsvdir忽略我的Subgit runit文件。 当手动启用软链接时,runsvdir正在成功启动Subgit同步。 我怎样才能坚持软链接,并保持自动启动子网分别启用? 这里是关于Subgit和runit的Dockerfile的一部分: RUN mkdir -p /opt/gitlab/sv/subgit/supervise && \ mkfifo /opt/gitlab/sv/subgit/supervise/ok && \ ln -s /opt/gitlab/sv/subgit /opt/gitlab/service/subgit COPY ./runit_subgit_run /opt/gitlab/sv/subgit/run COPY ./runit_subgit_finish /opt/gitlab/sv/subgit/finish RUN chmod a+x /opt/gitlab/sv/subgit/run /opt/gitlab/sv/subgit/finish 这是runit的运行文件。 真正的Gitlab组和项目名称被replace。 #!/bin/sh […]

gitlab-ci add -net = host选项给docker

我开发了一个PHP symfony项目,我使用gitlab。 我想在gitlab上构buildunit testing,为此我使用gitlab-ci.yml文件: image: php:5.6 # Select what we should cache cache: paths: – vendor/ before_script: # Install git, the php image doesn't have installed – apt-get update -yqq – apt-get install git -yqq # Install mysql driver – docker-php-ext-install pdo_mysql # Install composer – curl -sS https://getcomposer.org/installer | php # Install all project […]

Gitlab 8.12.7 container_registry推送错误404

当我尝试推我的docker图像到我的“gitlab容器registry”。我有一个404错误。 当我执行命令:tail -f / var / log / gitlab / registry / current看到日志我有这个消息:err.message =“库名称不知道registry”。 我可以login放不了。 我的外部registryurl与我的“gitlab uri”相同,我刚刚将端口4567添加到了最后。 谢谢你的帮助