GitLab CI неверный аргумент в работе для сборки Docker - PullRequest
0 голосов
/ 23 мая 2018

Итак, я пытаюсь настроить мой Gitlab CI для запуска задания на git push для сборки и развертывания моего Docker.Это файл .gitlab-ci.yml, который я использую на основе примера из документации Gitlab (Elixir yml).

stages:
  - build

build:
  before_script:
    - docker build -f Dockerfile.build -t ci-project-build-$CI_PROJECT_ID:$CI_BUILD_REF .
    - docker create
      -v /build/deps 
      -v /build/_build
      -v /build/rel
      -v /root/.cache/aceapp/
      --name build_data_$CI_PROJECT_ID_$CI_BUILD_REF busybox /bin/true
  tags:
    - docker
  stage: build
  script: 
    - docker run --volumes-from build_data_$CI_PROJECT_ID_$CI_BUILD_REF --rm -t ci-project-build-$CI_PROJECT_ID:$CI_BUILD_REF

Вывод при нажатии на экземпляр GitLab выглядит так:

Running with gitlab-runner 10.7.2 (b5e03c94)
on my.host.rhel.runner 8f724ea7
Using Shell executor...
Running on my.host.local...
Fetching changes...
HEAD is now at 14351c4 Merge branch 'Development' into 'master'
From https://my.host.example/zalmosc/ace-app
   14351c4..9fa2d43  master     -> origin/master
Checking out 9fa2d435 as master...
Skipping Git submodules setup
$ # Auto DevOps variables and functions # collapsed multi-line command
$ setup_docker
$ build
Logging to GitLab Container Registry with CI credentials...
Login Succeeded

Building Dockerfile-based application...
invalid argument "/master:9fa2d4358e6c426b882e2251aa5a49880013614b" for t: Error parsing reference: "/master:9fa2d4358e6c426b882e2251aa5a49880013614b" is not a valid repository/tag: invalid reference format
See 'docker build --help'.
ERROR: Job failed: exit status 1

Я понимаю, что тег docker недействителен (действительно ли before_script: запускается на основе имени?), И я ищу помощь относительно а) решения б) как узнать больше о требованиях к конвейеру, которыйстроит докер на основе настроек по умолчанию.Должен ли я пометить свой образ докера локально, а затем каким-то образом добавить это в мой git commit?

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Ваш тег не может начинаться с '/':

$ docker build -f Dockerfile.build -t /master:9fa2d4358e6c426b882e2251aa5a49880013614b .
invalid argument "/master:9fa2d4358e6c426b882e2251aa5a49880013614b" for "-t, --tag" flag: invalid reference format
See 'docker build --help'.

# remove '/'
$ docker build -f Dockerfile.build -t master:9fa2d4358e6c426b882e2251aa5a49880013614b .
Sending build context to Docker daemon  3.584kB
Step 1/3 : FROM ubuntu:16.04
---> 14f60031763d
...
0 голосов
/ 15 марта 2019

Если вы не используете встроенный реестр, вам, возможно, придется установить значение CI_REGISTRY_IMAGE в какое-либо значение.Кажется, что если вы не видите это, он устанавливается в / master и вызывает эту ошибку.Вы можете установить это на странице настроек CI или при создании нового конвейера.например, CI_REGISTRY_IMAGE gitlab.com/user/project

0 голосов
/ 23 мая 2018

Дело в том, -t, чтобы пометить ваше изображение Docker.Смотри документы здесь .

Тег должен быть отформатирован как name:version, а вы даете ему /master:9fa2d4358e6c426b882e2251aa5a49880013614b, который не является допустимым тегом.Вы можете попытаться удалить / до master

...