-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/65872/
-----------------------------------------------------------
Review request for mesos, Akash Gupta, Jeff Coffler, and Joseph Wu.
Bugs: MESOS-8619
https://issues.apache.org/jira/browse/MESOS-8619
Repository: mesos
Description
-------
Per MESOS-8619, Docker checks `$USERPROFILE/.docker/config.json`
instead of `$HOME`. Mesos overrides this environment variable in order
to point Docker to a `config.json` file in another location, so we
have to fix the assumption we made about Docker.
We do not add this constant to stout, because it is not consistent
across Windows applications. This particular logic is specific to the
implementation of Docker. Other applications might check `$HOME` or
`$HOMEPATH` on Windows.
Diffs
-----
src/docker/docker.cpp 876dfffc2ee68e345ff336fefa6cf908c3d2a5c4
Diff: https://reviews.apache.org/r/65872/diff/1/
Testing
-------
Deployed a `docker.zip` consisting of `.docker/config.json` in "Linux-form"
i.e. with base64 encoded password (not `wincred`) using the following task:
```
{
"name": "fetcher-test",
"task_id": {"value" : "fetcher"},
"agent_id": {"value" : ""},
"resources": [
{
"name": "cpus",
"type": "SCALAR",
"scalar": {
"value": 1
}
},
{
"name": "mem",
"type": "SCALAR",
"scalar": {
"value": 512
}
}
],
"command": {
"uris": [ {"value": "file://C:/Users/andschwa/docker.zip"} ],
"shell": false
},
"container": {
"type": "DOCKER",
"docker": {"image": "andschwa/nanoserver:1709"}
}
}
```
The `andschwa/nanoserver:1709` is a _private_ repo, and `docker logout` was run
(and confirmed that the machine could not pull the image manually).
With this patch and the `docker.zip` URI, it was fetched, unzipped, and found
by `docker pull`, enabling it to successfully pull the private image.
```
> docker images
REPOSITORY TAG IMAGE ID CREATED
SIZE
andschwa/nanoserver 1709 816017814fa2 2 weeks ago
312MB
```
This is difficult to unit-test because it requires private credentials, an
external private docker repo, and global side effects of Docker images (i.e.
you can't have it cached). But I am, of course, open to ideas of how to
programmatically test this.
Thanks,
Andrew Schwartzmeyer