Loading multiple docker images saved with image IDs returns empty list
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7.2k
- Forks
- 1.7k
- Avg merge
- 13d 8h
- Merged PRs (30d)
- 2
Description
Environment:
- Docker server version: 18.09.7-ce
- docker-py version: 4.0.2
To reproduce the problem, run the following code:
import subprocess
import docker
def main():
docker_client = docker.from_env(version='auto')
image_names = ['debian', 'ubuntu'] # Replace this with any of your Docker image names.
image_ids = [docker_client.images.get(image_name).id for image_name in image_names]
with subprocess.Popen(['docker', 'save', *image_ids], stdout=subprocess.PIPE) as docker_save_process:
print(docker_client.images.load(docker_save_process.stdout))
if __name__ == '__main__':
main()
I expect a list of multiple images being printed, but instead an empty list is printed.
I did a little digging, it seems that in the following code:
chunk contains multiple lines of loaded image info that makes the regular expression match fail.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in docker/models/images.py around lines 383-393 and reproduce the issue with the provided Python example using multiple image IDs. Check how the loaded image information is parsed when docker save emits multiple lines; done means docker_client.images.load returns all loaded images instead of an empty list.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- devops
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100