The previous instructions fixed situations where the directory
and file didn't exist, but had some issues remaining;
The `>>` _appends_ the content to the file; this would work if the file didn't
exist (before `touch`'ing it) but if there happened to be a file already, it
would append the content to the existing file, resulting in invalid JSON.
e.g. running it twice (which may be accidentally);
```bash
sudo echo '{"allowedOrgs":["myorg"]}' >> "/Library/Application Support/com.docker.docker/registry.json"
sudo echo '{"allowedOrgs":["myorg"]}' >> "/Library/Application Support/com.docker.docker/registry.json"
```
Would result in;
```bash
sudo cat "/Library/Application Support/com.docker.docker/registry.json"
{"allowedOrgs":["myorg"]}
{"allowedOrgs":["myorg"]}
```
(which is invalid JSON)
The `sudo echo` also had some issues; the `sudo` only applied to the `echo`, and
not to the piped output (see https://unix.stackexchange.com/questions/1416/redirecting-stdout-to-a-file-you-dont-have-write-permission-on);
```bash
$ sudo touch "/Library/Application Support/com.docker.docker/registry.json"
$ sudo echo '{"allowedOrgs":["myorg"]}' > "/Library/Application Support/com.docker.docker/registry.json"
bash: /Library/Application Support/com.docker.docker/registry.json: Permission denied
```
Instead, using `tee` to run as privileged process, similar to the approach taken
in c33d39a7ba/engine/install/debian.md (L106)
With that, the `touch` wouldn't be needed (the `mkdir` still would though);
```suggestion
$ sudo mkdir -p "/Library/Application Support/com.docker.docker"
$ echo '{"allowedOrgs":["myorg"]}' | sudo tee "/Library/Application Support/com.docker.docker/registry.json"
```
The new instructions will always overwrite the content with the new content,
replacing what's already there (that may need a small warning / note though) to
prevent the invalid JSON if someone runs the command multiple times, or if they
have to update the existing config with a new one.
Finally, some verification steps were added to verify content and permissions.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
* updated registry.json
* updated install info
* fix some formatting issues for registry.json instructions
- use `console` blocks for command-line examples
- use different prompts for "powershell" and "non-powershell" examples
- fix path of registry.json on macOS
- wrap some of the lines to ~80 chars
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Co-authored-by: Sebastiaan van Stijn <github@gone.nl>
This code-block uses the "console" highlighting, which considers lines that do
not start with a prompt to be "output" of the command, and non-selectable.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>