根据官方gitlab文档,docker build在ci管道内启用的一种方法是使用dind服务(就gitlab-ci 服务而言).
但是,由于在docker执行程序上运行ci作业总是如此,因此docker:latest也需要图像.
有人能解释一下:
docker:dind和docker:latest图像有什么区别?docker buildwhithin一个CI的工作吗?不是docker:latest图像(作业将在其中执行!)包含docker守护程序(我认为docker-compose也是),它们是我们需要的命令所必需的工具(例如docker build,docker push等等)?除非我错了,否则问题或多或少变成:
为什么docker客户端和docker守护程序不能驻留在同一个docker(启用)容器中
我有这样的一行:
sed -i 's/"host: TND_HOST"/"host: process.env.TND_HOST"/g' services/management/tnd.js
Run Code Online (Sandbox Code Playgroud)
上面的选项会导致 linting 错误:
This GitLab CI configuration is invalid: (<unknown>): mapping values are not allowed in this context at line [...]
Run Code Online (Sandbox Code Playgroud)
其他不起作用的选项是:
This GitLab CI configuration is invalid: (<unknown>): mapping values are not allowed in this context at line [...]
Run Code Online (Sandbox Code Playgroud)
有什么办法可以克服这个问题并将其保留为一句台词吗?
我们有一个由多个(非公共)存储库组成的项目.
要构建整个项目,构建系统需要拥有所有存储库(master分支)的文件.
有没有办法配置GitLab CI来提供我需要的存储库?
我想我可以git fetch在CI构建期间做一个或类似的,但是如何处理身份验证呢?
我有一个Dockerfile,从安装texlive-full软件包开始,这是一个巨大的,需要很长时间.如果我docker build在本地,安装后创建的中间图像被缓存,后续构建很快.
但是,如果我推送到我自己的GitLab安装并启动GitLab-CI构建运行器,这似乎总是从头开始,重新下载FROM映像,再次执行apt-get安装.这对我来说似乎是一个巨大的浪费,所以我试图弄清楚如何让GitLab DinD图像在构建之间缓存中间图像,到目前为止没有运气.
我已经使用了尝试--cache-dir,并--docker-cache-dir为gitlab-runner register命令,都无济于事.
这甚至是gitlab-runner DinD图像应该能够做到的吗?
我的.gitlab-ci.yml:
build_job:
script:
- docker build --tag=example/foo .
Run Code Online (Sandbox Code Playgroud)
我的Dockerfile:
FROM php:5.6-fpm
MAINTAINER Roel Harbers <roel.harbers@example.com>
RUN apt-get update && apt-get install -qq -y --fix-missing --no-install-recommends texlive-full
RUN echo Do other stuff that has to be done every build.
Run Code Online (Sandbox Code Playgroud)
我使用GitLab CE 8.4.0和gitlab/gitlab-runner:latest作为跑步者
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/local/gitlab-ci-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest \
; …Run Code Online (Sandbox Code Playgroud) 我一直在使用Gradle开发基于Scala的SlackBot项目,并且一直在研究如何利用Gitlab-CI来部署到AWS EC2.
我可以使用Gitlab-CI完全构建和测试我的应用程序.
如何使用CodeDeploy和CodePipeline从Gitlab-CI到Amazon EC2执行部署?
回答以此作为指南.
目前,当我在GitlabCI中开始构建时,它在gitlab-runner用户下运行.我想将其改为公司的内部用户.我没有找到/etc/gitlab-runner/config.toml的任何参数来解决这个问题.
我目前的配置:
concurrent = 1
[[runners]]
name = "deploy"
url = ""
token = ""
executor = "shell"
Run Code Online (Sandbox Code Playgroud) 我想使用 gitlab-ci 运行部署脚本,但步骤 ssh-add$SSH_PRIVATE_KEY返回错误:
echo "$SSH_PRIVATE_KEY" | ssh-add -
Error loading key "(stdin)": invalid format
Run Code Online (Sandbox Code Playgroud)
你可以看到我的.gitlab-ci.yml:
deploy:
image: node:9.11.1-alpine
stage: deploy
before_script:
# Install ssh-agent if not already installed, it is required by Docker.
# (change apt-get to yum if you use a CentOS-based image)
- 'which ssh-agent || ( apk add --update openssh )'
# Add bash
- apk add --update bash
# Add git
- apk add --update git
# Run ssh-agent (inside the …Run Code Online (Sandbox Code Playgroud) 我想创建一些嵌套条件:当它是合并或合并请求并且以特定名称启动“功能”时,我需要此管道才能工作。那么,作业的“唯一”选项中是否有 AND 条件?
您好我已经使用此https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#installation安装了Gitlab
现在我想使用nginx来提供除gitlab应用程序以外的其他内容我该怎么做呢
更新(忘了提到我在Red Hat 6.5,Debian/Ubuntu解决方案欢迎下运行它)
我需要在Gitlab中看到java maven项目的代码覆盖率报告.根据这个,这个和其他一些来源:
jacoco到插件列表中pom.xml..gitlab-ci.yml文件中添加了页面作业.Total.*?([0-9]{1,3})%到项目设置中的代码覆盖解析.但是没有任何报道报道,或者至少我看不到它.没有覆盖百分比或覆盖率报告页面.
.gitlab-ci.yml文件内容:
image: maven:latest
variables:
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
cache:
paths:
- .m2/repository/
build:
stage: build
script:
- mvn $MAVEN_CLI_OPTS compile
test:
stage: test
script:
- mvn $MAVEN_CLI_OPTS test
artifacts:
paths:
- target/site/jacoco/
pages:
stage: deploy
dependencies:
- test
script:
- mkdir public
- mv target/site/jacoco/index.html public
artifacts:
paths:
- public
deploy:
stage: deploy …Run Code Online (Sandbox Code Playgroud)