docker / docker/cli

Docker `manifest create --amend` doesn't update the manifest

Open
#954 8 comments 19 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/manifest platform/windows
Dominant language
Go
Stars
6.1k
Forks
2.2k
Avg merge
1d 15h
Merged PRs (30d)
43

Description

Once a manifest was created, I wasn't able to alter it. I created several images, then created a manifest that could select the correct image based on the current platform. Once deployed to docker hub, I updated the images with a new build and tried to update the manifest file, but realised that the manifest create command wasn't actually changing anything and I was always getting the cached version.

There is NO command to delete the cached manifest :)

What I finally figured out is that I could push it to the docker repository again by calling

docker manifest push --purge artiomchi/helloworld

The --purge parameter cleared the local cached manifest, so I was able to create a new one and push it again overwriting it on the docker hub (I used the purge param again for good measure)

Expected behavior

The --amend attribute in the docker manifest create command should mean that the manifest list should be updated

Actual behavior

If a manifest is cached locally, it won't be updated at all by the docker manifest create --amend command

Information

Running on Windows 10 with 1709 creator's update, Docker 18.03 edge with experimental cli options on (to get access to the manifest commands)

Steps to reproduce the behavior

Based on the https://github.com/artiomchi/HelloWorld project

docker manifest create artiomchi/helloworld:latest artiomchi/helloworld:alpine artiomchi/helloworld:nanoserver artiomchi/helloworld:nanoserver-1709
docker manifest push artiomchi/helloworld:latest

// Create new images

docker manifest create --amend artiomchi/helloworld:latest artiomchi/helloworld:alpine artiomchi/helloworld:nanoserver artiomchi/helloworld:nanoserver-1709

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the listed docker manifest create and docker manifest push commands with --amend, then trace the manifest create command's handling of an existing local manifest. Done means --amend updates the cached manifest with the newly referenced images without requiring docker manifest push --purge.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.