簡體   English   中英

GitLab CI在Docker構建的作業上無效參數

[英]GitLab CI invalid argument on job for Docker build

所以我正在嘗試設置我的Gitlab CI來觸發git push上的工作來構建和部署我的Docker。 這是我使用的.gitlab-ci.yml文件,基於Gitlab docs(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:真的是根據名稱觸發了嗎?),我正在尋找有關a)解決方案的幫助b)我如何能夠了解更多關於構建docker的管道的要求基於默認設置。 我是否需要在本地標記我的docker鏡像,然后以某種方式將其添加到我的git提交中?

您的代碼不能以“/”開頭:

$ 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
...

問題是-t是標記你的Docker鏡像。 請參閱此處的文檔。

標簽應該格式化為name:version ,你給它/master:9fa2d4358e6c426b882e2251aa5a49880013614b這不是一個有效的標簽。 你可以嘗試刪除/master

如果您沒有使用內置注冊表,則可能必須將CI_REGISTRY_IMAGE值設置為某個值。 似乎如果你沒有這個它被設置為/ master並導致此錯誤。 您可以在CI設置頁面中或在創建新管道時進行設置。 例如CI_REGISTRY_IMAGE gitlab.com/user/project

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM