docker - GitLab,无法登录 Docker 注册表
问题描述
我是 GitLab 用户。我用 groff 脚本制作了一本 900 页的书。输出将存储在输出文件夹中。当作者进行一些更改并推送到 GitLab 时,Docker 映像将生成这本书。
这个想法是构建一个 docker 容器并将容器存储在 GitLab 注册表中。容器的构建工作正常,但我收到一条错误消息。
错误在运行脚本中。docker登录不正确。
image: docker:latest
variables:
DOCKER_DRIVER: overlay2
CONTAINER_IMAGE: registry.gitlab.com/test
DOCKER_IMAGE: paperboy
TAG: 0.1.0
services:
- docker:dind
stages:
- build
- release
- run
before_script:
- docker login registry.gitlab.com --username gitlab+deploy-token-0000 --password 3435563
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
- apk update && apk add --no-cache
- rm -rf /var/cache/apk/*
build:
stage: build
script:
- docker build -t $CONTAINER_IMAGE/$DOCKER_IMAGE .
- docker push $CONTAINER_IMAGE/$DOCKER_IMAGE
release:
stage: release
script:
- docker pull $CONTAINER_IMAGE/$DOCKER_IMAGE
- docker tag $CONTAINER_IMAGE/$DOCKER_IMAGE:latest $CONTAINER_IMAGE/$DOCKER_IMAGE:$TAG
- docker push $CONTAINER_IMAGE/$DOCKER_IMAGE:$TAG
only:
- master
run:
stage: run
script:
- docker pull $CONTAINER_IMAGE/$DOCKER_IMAGE
- docker run --rm -v $(pwd)/data/:/home/data
-v $(pwd)/output/:/home/output
-v $(pwd)/output/csv/:/home/output/csv
-v $(pwd)/output/pdf/:/home/output/pdf paperboy
- rm -rf "%CACHE_PATH%/%CI_PIPELINE_ID%"
only:
- master
这就是我的 .gitlab-ci.yml 中运行脚本的想法。我收到此错误消息:
$ docker run --rm
-v $(pwd)/data/:/home/data
-v $(pwd)/output/:/home/output
-v $(pwd)/output/csv/:/home/output/csv
-v $(pwd)/output/pdf/:/home/output/pdf $CONTAINER_IMAGE/$DOCKER_IMAGE
- git add .
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"-\": executable file not found in $PATH": unknown.
time="2019-09-10T10:55:51Z" level=error msg="error waiting for container: context canceled"
ERROR: Job failed: exit code 127
run:
stage: run
script:
- docker login registry.gitlab.com -u gitlab+deploy-token-95492 -p $DEPLOY_TOKEN
- docker pull $CONTAINER_IMAGE/$DOCKER_IMAGE
- docker images | grep paperboy
- docker run --rm
-v $(pwd)/data/:/home/data
-v $(pwd)/output/:/home/output
-v $(pwd)/output/csv/:/home/output/csv
-v $(pwd)/output/pdf/:/home/output/pdf
$CONTAINER_IMAGE/$DOCKER_IMAGE
- git add .
- git commit -m "Update"
- git push origin master
- rm -rf "%CACHE_PATH%/%CI_PIPELINE_ID%"
only:
- master
解决方案
可以忽略有关未加密存储的密码的警告。
对于运行错误,您已指定paperboy
为图像而不是registry.gitlab.com/test/paperboy
. 由于您已经将变量组合在一起作为图像名称,因此您可能应该使用它们而不是硬编码paperboy
值。
run:
stage: run
script:
- docker pull $CONTAINER_IMAGE/$DOCKER_IMAGE
- docker run --rm
-v $(pwd)/data/:/home/data
-v $(pwd)/output/:/home/output
-v $(pwd)/output/csv/:/home/output/csv
-v $(pwd)/output/pdf/:/home/output/pdf
$CONTAINER_IMAGE/$DOCKER_IMAGE
- rm -rf "%CACHE_PATH%/%CI_PIPELINE_ID%"
only:
- master
推荐阅读
- google-apps-script - 使用应用程序脚本更新一系列单元格中的公式
- python - ValueError:查看限制最小值-36834.700000?
- go - 什么是名为 runtime.gopark 的 goroutine?
- python - Excel Pandas DataFrame 到嵌套 JSON
- sympy - Sympy:敏感性分析
- python - 多处理:使用 tqdm 显示全局进度条?
- snowflake-cloud-data-platform - 雪花(私人链接)是否支持自定义域?
- java - 在 MVC 程序的视图中将类型转换为列表的最佳方法是什么?
- laravel - 无法解析您的关键护照 laravel
- c - 如何在 unix 系统上调试野牛程序?