Обновите последний артефакт в реестре JFrog Docker с конвейером Azure - PullRequest
0 голосов
/ 26 марта 2020

Я отправляю свое изображение в артефакт JFrog Docker Реестр с тегом: последний с Azure task

- task: ArtifactoryDocker@1
  displayName: 'Publish a docker image'      
  inputs:
    command: 'push'
    artifactoryService: 'Artifactory'
    targetRepo: 'docker'
    imageName: '$(imageName):latest'

Однако он не переписывает существующие последние и в конвейере я вижу следующий журнал

    394668d88274: Layer already exists
d821d3ad1366: Layer already exists
78d869964af5: Layer already exists
26f565299233: Layer already exists
c952f96d3d90: Layer already exists
29a09581f308: Layer already exists
30ffbe29feab: Layer already exists
af63a7c31ba7: Layer already exists
6153c9b0b282: Layer already exists
25c2968702ec: Layer already exists
610209d4392e: Layer already exists
7cd35e62d6fb: Layer already exists
2de391e51d73: Layer already exists
92d30847d049: Layer already exists
d73dd9e65295: Layer already exists
686245e78935: Layer already exists
d7ff1dc646ba: Layer already exists
644879075e24: Layer already exists
latest: digest: sha256:586235b20caabc398b8da81d79a48e27385456d4a4bc2a343f7cacdd8ce97b38 size: 4078

Можно ли как-нибудь перезаписать? Я не могу найти документацию для этой задачи плагина.

1 Ответ

1 голос
/ 27 марта 2020

Невозможно найти документацию для этой задачи плагина.

Боюсь, этот плагин не существует для azure devops.

Исходя из моего понимания, предыдущее изображение должно быть перезаписано. Вы можете проверить свое изображение, какой тег latest после того, как вышеупомянутый конвейер завершен Я думаю, что время модификации изображения должно меняться во время работы конвейера.

Layer already exists

Это должно произойти, потому что ваш dockerfile там не имеет изменений. Как вы знаете, каждая инструкция Dockerfile будет генерировать слой. Если в инструкции нет никаких изменений, соответственно, слой также не будет изменен.

Кроме того, если вы беспокоитесь о том, что изображение не самое свежее, вы должны попробовать sh. Вы можете удалить этот тег до того, как вы его sh.

Проверьте этот Лягушачий документ и рассмотрите возможность использования задачи командной строки для выполнения этого API:

curl -k -u {username}:{password} -X DELETE https://{reverseproxyhost}/artifactory/<repo>/<imgname>/<imgtag>
...