This adds support for authenticating towards ECR in the docker builder
and docker-push post-processor using them same mechanisms as in the
amazon builders. I.g. access key/secret key, credentials on file,
environment variables, sts tokens or IAM instance roles.
Refactor the docker builder so that it does not expect output from the
container to be strictly line oriented or even text, because SFTP, used by
Ansible, is a binary protocol. Since `docker exec` was introduced in 2014,
remove support for older versions of docker that required using `docker
attach`. The old notes in the docker builder referring to specific issues have
all been resolved or else closed because they could not be reproduced.
When using docker-machine on a Mac only the /Users folder is shared with
the VM. Uploads fail since the normal tmpdir is not shared. This change
uses the local packer directory (usually when run in the users home
folders) allowing it to work without setting TMPDIR explicitly. A better
fix would be to use the docker API directly but that would force users
to use docker API version 20+.
- fixes#901, fixes#1752, fixes#2436, fixes#2675, fixes#2697.