我使用 gitlab ci 来构建 docker 镜像,我想安装 python。当我构建时,以下是我的 gitlab-ci.yml:
image: docker:stable
stages:
- test
- build
before-script:
- apt install -y python-dev python pip
test1:
stage: test
script:
...
- pytest
build:
stage: build
- docker build -t $IMAGE_TAG .
- docker push $IMAGE_TAG
Run Code Online (Sandbox Code Playgroud)
但我的工作失败了
/bin/sh: eval: line : apt: not found
ERROR: Job failed: exit code 127
Run Code Online (Sandbox Code Playgroud)
我也试过 apt-get install 但结果是一样的。
我如何安装python?
在 Gitlab 上运行 CI/CD 管道时,我的 Karma 测试超时并出现错误:
? ?wdm?: Compiled successfully.
05 08 2019 22:25:31.483:INFO [karma-server]: Karma v4.2.0 server started at http://0.0.0.0:9222/
05 08 2019 22:25:31.485:INFO [launcher]: Launching browsers ChromeHeadlessNoSandbox with concurrency 1
05 08 2019 22:25:31.488:INFO [launcher]: Starting browser ChromeHeadless
05 08 2019 22:26:31.506:WARN [launcher]: ChromeHeadless have not captured in 60000 ms, killing.
05 08 2019 22:26:31.529:INFO [launcher]: Trying to start ChromeHeadless again (1/2).
05 08 2019 22:27:31.580:WARN [launcher]: ChromeHeadless have not captured in 60000 ms, killing.
05 08 …Run Code Online (Sandbox Code Playgroud) 即使我的所有步骤都成功通过,Gitlab CI 显示了这一点 - “清理基于文件的变量 00:01 错误:作业失败:退出代码 1”
并最终失败了。同样有趣的是,这只发生在我的主分支上。它在其他分支上成功运行。有没有人遇到过这个问题并找到了解决方案?
- >
for dir in $(git log -m -1 --name-only -r --pretty="format:" "$CI_COMMIT_SHA"); do
if [[ -f "$dir" ]]; then
SERVICE=$(echo "$dir")
# helm install the service
fi
done
- echo "deployed"
Run Code Online (Sandbox Code Playgroud) 我目前正在使用gitlab.com(非本地安装)和他们的多用户进行CI集成.这对我的一个项目非常有效,但对另一个项目失败了.
我在MSBuild版本14.0.23107.0上使用2012R2作为主机.我知道下面的错误显示403这是一个拒绝访问的消息.我的问题是找到要更改的权限设置.
错误信息:
使用gitlab-ci-multi-runner 1.5.3运行(fb49c47)使用Shell执行程序...在WIN-E0ORPCQUFHS上运行...
获取更改......
HEAD现在位于6a70d96更新转轮文件远程:访问被拒绝致命:无法访问' https:// gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@gitlab.com/##REDACTED##/ADInactiveObjectCleanup.git/ ':请求的网址已返回错误:403将60ea1410签出为生产...
致命:引用不是树:60ea1410dd7586f6ed9535d058f07c5bea2ba9c7错误:构建失败:退出状态128
gitlab-ci.yml文件:
variables:
Solution: ADInactiveObjectCleanup.sln
before_script:
#- "echo off"
#- 'call "%VS120COMNTOOLS%\vsvars32.bat"'
## output environment variables (usefull for debugging, propably not what you want to do if your ci server is public)
#- echo.
#- set
#- echo.
stages:
- build
#- test
#- deploy
build:
stage: build
script:
- echo building...
- '"%ProgramFiles(x86)%\MSBuild\14.0\Bin\msbuild.exe" "%Solution%" /p:Configuration=Release'
except:
#- tags
Run Code Online (Sandbox Code Playgroud) 我最近使用docker image gitlab/gitlab-runner:9.1.0与gitlab容器一起使用了一些CI.发生错误并使用不同的版本推荐类似的支持请求,所以我尝试了:latest一些:1.11也是.不幸的是它一直告诉我这个错误:
Running with gitlab-ci-multi-runner 1.11.4 (5e7ba4a)
on foo (02cdacdc)
Using Docker executor with image pretzlaw/php:7.1-apache ...
Starting service mariadb:latest ...
Pulling docker image mariadb:latest ...
Waiting for services to be up and running...
Pulling docker image pretzlaw/php:7.1-apache ...
Running on runner-02cdacdc-project-7-concurrent-0 via 9d1d33dc9212...
Fetching changes...
HEAD is now at 7580815 QA: CI Lint
From http://idgaf.example.org/foo/bar
7580815..affeede develop -> origin/develop
Checking out affeede as develop...
Skipping Git submodules setup
[: 1: [: Syntax …Run Code Online (Sandbox Code Playgroud) 我正在尝试在本地生成我正在进行的工作hugo网站.它与gitlab CI一起工作正常.
我安装了docker和gitlab runner服务.
然后在这里使用指南,我想我应该这样做gitlab-runner exec docker pages.但结果是:
[0;33mWARNING: Since GitLab Runner 10.0 this command is marked as DEPRECATED and will be removed in one of upcoming releases[0;m
[0KRunning with gitlab-runner 10.5.0 (80b03db9)
[0;m[0KUsing Docker executor with image rocker/tidyverse:latest ...
[0;m[0KPulling docker image rocker/tidyverse:latest ...
[0;m[0KUsing docker image sha256:f9a62417cb9b800a07695f86027801d8dfa34552c621738a80f5fed649c1bc80 for rocker/tidyverse:latest ...
[0;m[31;1mERROR: Job failed (system failure): Error response from daemon: invalid volume specification: '/host_mnt/c/builds/project-0/Users/jan/Desktop/gits/stanstrup-web:C:\Users\jan\Desktop\gits\stanstrup-web:ro'
[0;m[31;1mFATAL: Error response from daemon: …Run Code Online (Sandbox Code Playgroud) 我已安装并配置:
ServerA证书由自定义CA Root生成
我已将CA根证书放在ServerB上:
/srv/gitlab-runner/config/certs/ca.crt
Run Code Online (Sandbox Code Playgroud)
按照容器中的Run GitLab Runner中的描述在ServerB上安装Runner - Docker镜像安装和配置:
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
Run Code Online (Sandbox Code Playgroud)
docker run --rm -t -i
-v /srv/gitlab-runner/config:/etc/gitlab-runner
--name gitlab-docker-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "https://MY_PRIVATE_REPO_URL_HERE/" \
--registration-token "MY_PRIVATE_TOKEN_HERE" \
--description "MyDockerServer-Runner" \
--tag-list …Run Code Online (Sandbox Code Playgroud) 我在 docker 容器中有一个 gitlab runner,如果我运行像 nginx 这样的图像,运行良好。但是现在我尝试在 gitlab runner 中的 docker (dind) 中运行 docker,我想在 dind 中运行 docker-compose。Docker 信息运行良好,但如果我尝试运行 docker-compose,我会收到一个权限被拒绝的错误。
我将 /usr/local/bin/docker-compose 文件链接到 gitlab runner 容器,并将其输入到 runner config.toml 文件的卷参数中。
如果我尝试运行 sudo,它会以未知的命令错误结束,因此这不是解决方案。
我是否必须更多地链接一些文件,还是链接到许多嵌套容器?
以下是我的 .gitlab-ci.yml
stages:
- build
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
services:
- docker:dind
build-image:
image: docker:stable
stage: build
script:
- docker build --no-cache -t repo/myimage:$CI_JOB_ID .
- docker push repo/myimage:$CI_JOB_ID
Run Code Online (Sandbox Code Playgroud)
我已经在 Gitlab 中设置了 DOCKER_AUTH_CONFIG,如下所示(包含所有匹配的可能性)
{
"auths": {
"https://index.docker.io": {
"auth": "...."
},
"https://index.docker.io/v1/": {
"auth": "..."
},
"https://index.docker.io/v2/": {
"auth": "..."
},
"index.docker.io/v1/": {
"auth": "..."
},
"index.docker.io/v2/": {
"auth": "..."
},
"docker.io/repo/myimage": {
"auth": "..."
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,每当尝试推送图像时,就会出现以下错误
$ docker push repo/myimage:$CI_JOB_ID
The push refers to repository [docker.io/repo/myimage] …Run Code Online (Sandbox Code Playgroud) 我在 gitlab.com 上有一个私人仓库。我已经使用 gitlab 共享运行程序设置了 CI/CD 管道。在代码推送上,构建了一个 docker 镜像,登录到 gitlab 私有 docker 注册表并推送镜像。它适用于共享的跑步者。现在我正在尝试为管道创建自定义运行器。
我在 DigitalOcean 上创建了一个 Droplet(Ubuntu 18.04 上的 Docker 18.09.2~3 - 8 GB / 4 CPU / 160 GB SSD)
ssh 进入液滴
创建一个跑步者(来自https://docs.gitlab.com/runner/install/docker.html#docker-image-installation-and-configuration)
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
Run Code Online (Sandbox Code Playgroud)
并注册它(来自https://docs.gitlab.com/runner/register/index.html#one-line-registration-command)
docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:3 \
--url "https://gitlab.com/" \
--registration-token "MY_TOKEN" \
--description "docker-runner" …Run Code Online (Sandbox Code Playgroud)