Как вы предоставляете учетные данные для доступа к частному реестру докеров в зале?

До недавнего времени мне удавалось развертывать образы докеров из Concourse в облачное хранилище, как показано в этом фрагменте конвейера Concourse:

resources:
- name: cf-build-in
  type: cf
  source:
    api: ((cf-api-endpoint))
    username: ((cf-username-email))
    password: ((cf-password))
    organization: ((cf-organization))
    space: Development
    skip_cert_check: false

jobs:
- name: deploy-build-in-cf-private
  plan:
  - get: git
    passed: [build-private]
    trigger: false
  - put: cf-build-in
    params:
      manifest: git/manifest-private.yml
      docker_username: ((docker-registry-username))
      docker_password: ((docker-registry-password))
      environment_variables:
        CF_DOCKER_PASSWORD: ((docker-registry-password))

Я недавно обновился до Concourse 3.9.2 (последний на момент написания), но теперь у меня возникают проблемы, и появляется эта ошибка при запуске конвейера выше:

Incorrect Usage: '--docker-image, -o' and '--docker-username' must be used together.
FAILED

NAME:
   push - Push a new app or sync changes to an existing app

USAGE:
   cf push APP_NAME [-b BUILDPACK_NAME] [-c COMMAND] [-f MANIFEST_PATH | --no-manifest] [--no-start]
   [-i NUM_INSTANCES] [-k DISK] [-m MEMORY] [-p PATH] [-s STACK] [-t HEALTH_TIMEOUT] [-u (process | port | http)]
   [--no-route | --random-route | --hostname HOST | --no-hostname] [-d DOMAIN] [--route-path ROUTE_PATH]

   cf push APP_NAME --docker-image [REGISTRY_HOST:PORT/]IMAGE[:TAG] [--docker-username USERNAME]
   [-c COMMAND] [-f MANIFEST_PATH | --no-manifest] [--no-start]
   [-i NUM_INSTANCES] [-k DISK] [-m MEMORY] [-t HEALTH_TIMEOUT] [-u (process | port | http)]
   [--no-route | --random-route | --hostname HOST | --no-hostname] [-d DOMAIN] [--route-path ROUTE_PATH]

   cf push -f MANIFEST_WITH_MULTIPLE_APPS_PATH [APP_NAME] [--no-start]

ALIAS:
   p

OPTIONS:
   -b                           Custom buildpack by name (e.g. my-buildpack) or Git URL (e.g. 'https://github.com/cloudfoundry/java-buildpack.git') or Git URL with a branch or tag (e.g. 'https://github.com/cloudfoundry/java-buildpack.git#v3.3.0' for 'v3.3.0' tag). To use built-in buildpacks only, specify 'default' or 'null'
   -c                           Startup command, set to null to reset to default start command
   -d                           Domain (e.g. example.com)
   --docker-image, -o           Docker-image to be used (e.g. user/docker-image-name)
   --docker-username            Repository username; used with password from environment variable CF_DOCKER_PASSWORD
   -f                           Path to manifest
   --health-check-type, -u      Application health check type (Default: 'port', 'none' accepted for 'process', 'http' implies endpoint '/')
   --hostname, -n               Hostname (e.g. my-subdomain)
   -i                           Number of instances
   -k                           Disk limit (e.g. 256M, 1024M, 1G)
   -m                           Memory limit (e.g. 256M, 1024M, 1G)
   --no-hostname                Map the root domain to this app
   --no-manifest                Ignore manifest file
   --no-route                   Do not map a route to this app and remove routes from previous pushes of this app
   --no-start                   Do not start an app after pushing
   -p                           Path to app directory or to a zip file of the contents of the app directory
   --random-route               Create a random route for this app
   --route-path                 Path for the route
   -s                           Stack to use (a stack is a pre-built file system, including an operating system, that can run apps)
   -t                           Time (in seconds) allowed to elapse between starting up an app and the first healthy response from the app

ENVIRONMENT:
   CF_STAGING_TIMEOUT=15        Max wait time for buildpack staging, in minutes
   CF_STARTUP_TIMEOUT=5         Max wait time for app instance startup, in minutes
   CF_DOCKER_PASSWORD=          Password used for private docker repository

SEE ALSO:
   apps, create-app-manifest, logs, ssh, start
error running command: exit status 1
  1. Кажется, я не могу найти хороший способ включить больше отладочных данных для cf-resource

  2. Я протестировал переход на этот альтернативный cf-cli-resource, но получаю аналогичную ошибку + они не На самом деле нет явных docker_username, docker_password аргументов.

  3. Я попытался вернуться к версии 3.8.0 собрания, но на самом деле получаю некоторую ошибку базы данных, поэтому откат, по-видимому, будет означать потерю данных.

Есть ли кто-нибудь, кто запускает Concourse 3.9.2 с развертыванием в CloudFoundry из частного реестра докеров, и кто может проверить, что это работает?


person Chris    schedule 15.03.2018    source источник


Ответы (1)


Таким образом, уловка заключалась в том, что НЕ указывать docker_username: ((docker-registry-username)). Также CF_DOCKER_PASSWORD: ((docker-registry-password)) в этом случае не требовалось.

Допустимая установка может выглядеть так:

resources:
- name: cf-build-in
  type: cf
  source:
    api: ((cf-api-endpoint))
    username: ((cf-username-email))
    password: ((cf-password))
    organization: ((cf-organization))
    space: Development
    skip_cert_check: false

- name: repo-docker-registry
  type: docker-image
  source:
    repository: my.registry.com/repo
    username: ((docker-registry-username))
    password: ((docker-registry-password))

jobs:
- name: build-repo-docker-image
  serial_groups: [build-base]
  plan:
  - get: repo-git
    trigger: true
  - put: repo-docker-registry
    params:
      build: repo-git
      dockerfile: repo-git/Dockerfile

- name: deploy-build-in-cf-private
  plan:
  - get: git
    passed: [build-repo-docker-image]
    trigger: false
  - put: cf-build-in
    params:
      manifest: repo-git/manifest-private.yml
      docker_password: ((docker-registry-password))

Затем manifest-private.yml должен указать образ докера и имя пользователя (но НЕ пароль):

applications:
- name: app-name
  docker:
    image: my.registry.com/repo:latest
    username: my_user
person Chris    schedule 12.09.2018