Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import man docs completion #147

Merged
merged 2,539 commits into from
Jun 2, 2017
Merged

Conversation

tiborvass
Copy link
Collaborator

@tiborvass tiborvass commented Jun 2, 2017

This partially replaces #68.

ca8303e is the merge commit that imports the changes
d2cb97e and 875daf0 and d2976d5 are additional commits.

$ git checkout f888a25ff5     # engine commit used in docker-ce in 17.06 branch
$ git filter-branch -f -d /tmp/fb  --index-filter "git rm --cached -qr --ignore-unmatch -- . && git reset -q \$GIT_COMMIT -- $(echo experimental man docs/{README.md,deprecated.md,extend} docs/sources/experimental docs/{sources/,}reference/{glossary.md,builder.md,builder.rst,index.md,index.rst,run.md,run.rst,commandline} contrib/completion docs/yaml)" --prune-empty
$ git rebase -Xours --root HEAD
$ git rm man/docker-volume.1.md && git rebase --continue
$ git rm docs/deprecated.md && git rebase --continue
$ git branch -f tmp
$ git checkout 3dfb8343b139d6342acfd9975d7f1068b5b1c3d3   # cli commit used in docker-ce in 17.06 branch
$ git merge --allow-unrelated-histories tmp
$ git revert -e $(git log --format=%H -1 --follow -- docs/yaml)
$ # ... add the additional commits

Please note that this imports only up till what is in 17.06. The rest will be imported in another PR. This is so that it is easier to include this PR in the release branch of the docker-ce repo.

A follow up PR is also needed to change Makefiles and add scripts to generate both man pages and yaml docs. The reason it will be separate is because cli master and cli 17.06 have diverged for those.

yongtang and others added 30 commits June 2, 2017 00:10
…build` to use opts.MemBytes

This fix made several updates:
1. Update opts.MemBytes so that default value will not show up.
   The reason is that in case a default value is decided by daemon,
   instead of client, we actually want to not show default value.
2. Move `docker run/create/build` to use opts.MemBytes for `--shm-size`
   This is to bring consistency between daemon and docker run
3. docs updates.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Signed-off-by: Harald Albers <github@albersweb.de>
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
This fix updates the markdown for man pages of `docker container ...`
so that they are consistent. The changes are based on feedback:
moby/moby#30645 (comment)
moby/moby#30645 (comment)

1. Use `H2 (##)` as needed
2. Use unrpiviledged prompt (`$`) instead of (`#`)

This PR convers files under man/src/container/*.md

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This fix tries to improve the display of `docker service ls`
and adds `--format` flag to `docker service ls`.

In addition to `--format` flag, several other improvement:
1. Updates `docker stacks service`.
2. Adds `servicesFormat` to config file.

Related docs has been updated.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This fix adds markdown for man page of `docker plugin ls`,
based on moby/moby#28627 (comment)

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
…ze|mode`

Signed-off-by: Harald Albers <github@albersweb.de>
Signed-off-by: allencloud <allen.sun@daocloud.io>
Signed-off-by: John Howard <jhoward@microsoft.com>

Working directory processing was handled differently for Hyper-V and Windows-Server containers, as annotated in the builder documentation (updated in this PR). For Hyper-V containers, the working directory set by WORKDIR was not created. This PR makes Hyper-V containers work the same as Windows Server containers (and the same as Linux).

Example (only applies to Hyper-V containers, so not reproducible under CI environment)
Dockerfile:
FROM microsoft/nanoserver
WORKDIR c:\installer
ENV GOROOT=c:\installer
ADD go.exe .
RUN go --help
Running on Windows Server 2016, using docker master without this change, but with daemon set to --exec-opt isolation=hyperv as it would be for Client operating systems.
PS E:\go\src\github.com\docker\docker> dockerd -g c:\control --exec-opt isolation=hyperv
time="2017-02-01T15:48:09.657286100-08:00" level=info msg="Windows default isolation mode: hyperv"
time="2017-02-01T15:48:09.662720900-08:00" level=info msg="[graphdriver] using prior storage driver: windowsfilter"
time="2017-02-01T15:48:10.011588000-08:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
time="2017-02-01T15:48:10.016655800-08:00" level=info msg="Loading containers: start."
time="2017-02-01T15:48:10.460820000-08:00" level=info msg="Loading containers: done."
time="2017-02-01T15:48:10.509859600-08:00" level=info msg="Daemon has completed initialization"
time="2017-02-01T15:48:10.509859600-08:00" level=info msg="Docker daemon" commit=3c64061 graphdriver=windowsfilter version=1.14.0-dev
First with no explicit isolation:
PS E:\docker\build\unifyworkdir> docker build --no-cache .
Sending build context to Docker daemon  10.1 MB
Step 1/5 : FROM microsoft/nanoserver
 ---> 89b8556cb9ca
Step 2/5 : WORKDIR c:\installer
 ---> 7e0f41d08204
Removing intermediate container 236c7802042a
Step 3/5 : ENV GOROOT c:\installer
 ---> Running in 8ea5237183c1
 ---> 394b70435261
Removing intermediate container 8ea5237183c1
Step 4/5 : ADD go.exe .
 ---> e47401a1745c
Removing intermediate container 88dcc28e74b1
Step 5/5 : RUN go --help
 ---> Running in efe90e1b6b8b
container efe90e1b6b8b76586abc5c1dc0e2797b75adc26517c48733d90651e767c8463b encountered an error during CreateProcess: failure in a Windows system call: The directory name is invalid. (0x10b) extra info: {"ApplicationName":"","CommandLine":"cmd /S /C go --help","User":"","WorkingDirectory":"C:\\installer","Environment":{"GOROOT":"c:\\installer"},"EmulateConsole":false,"CreateStdInPipe":true,"CreateStdOutPipe":true,"CreateStdErrPipe":true,"ConsoleSize":[0,0]}
PS E:\docker\build\unifyworkdir>
Then forcing process isolation:
PS E:\docker\build\unifyworkdir> docker build --isolation=process --no-cache .
Sending build context to Docker daemon  10.1 MB
Step 1/5 : FROM microsoft/nanoserver
 ---> 89b8556cb9ca
Step 2/5 : WORKDIR c:\installer
 ---> 350c955980c8
Removing intermediate container 8339c1e9250c
Step 3/5 : ENV GOROOT c:\installer
 ---> Running in bde511c5e3e0
 ---> b8820063b5b6
Removing intermediate container bde511c5e3e0
Step 4/5 : ADD go.exe .
 ---> e4ac32f8902b
Removing intermediate container d586e8492eda
Step 5/5 : RUN go --help
 ---> Running in 9e1aa235af5f
Cannot mkdir: C:\installer is not a directory
PS E:\docker\build\unifyworkdir>
Now compare the same results after this PR. Again, first with no explicit isolation (defaulting to Hyper-V containers as that's what the daemon it set to) - note it now succeeds 😄
PS E:\docker\build\unifyworkdir> docker build --no-cache .
Sending build context to Docker daemon  10.1 MB
Step 1/5 : FROM microsoft/nanoserver
 ---> 89b8556cb9ca
Step 2/5 : WORKDIR c:\installer
 ---> 4f319f301c69
Removing intermediate container 61b9c0b1ff6f
Step 3/5 : ENV GOROOT c:\installer
 ---> Running in c464a1d612d8
 ---> 96a26ab9a7b5
Removing intermediate container c464a1d612d8
Step 4/5 : ADD go.exe .
 ---> 0290d61faf57
Removing intermediate container dc5a085fffe3
Step 5/5 : RUN go --help
 ---> Running in 60bd56042ff8
Go is a tool for managing Go source code.

Usage:

        go command [arguments]

The commands are:

        build       compile packages and dependencies
        clean       remove object files
        doc         show documentation for package or symbol
        env         print Go environment information
        fix         run go tool fix on packages
        fmt         run gofmt on package sources
        generate    generate Go files by processing source
        get         download and install packages and dependencies
        install     compile and install packages and dependencies
        list        list packages
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         run go tool vet on packages

Use "go help [command]" for more information about a command.

Additional help topics:

        c           calling between Go and C
        buildmode   description of build modes
        filetype    file types
        gopath      GOPATH environment variable
        environment environment variables
        importpath  import path syntax
        packages    description of package lists
        testflag    description of testing flags
        testfunc    description of testing functions

Use "go help [topic]" for more information about that topic.

The command 'cmd /S /C go --help' returned a non-zero code: 2
And the same with forcing process isolation. Also works 😄
PS E:\docker\build\unifyworkdir> docker build --isolation=process --no-cache .
Sending build context to Docker daemon  10.1 MB
Step 1/5 : FROM microsoft/nanoserver
 ---> 89b8556cb9ca
Step 2/5 : WORKDIR c:\installer
 ---> f423b9cc3e78
Removing intermediate container 41330c88893d
Step 3/5 : ENV GOROOT c:\installer
 ---> Running in 0b99a2d7bf19
 ---> e051144bf8ec
Removing intermediate container 0b99a2d7bf19
Step 4/5 : ADD go.exe .
 ---> 7072e32b7c37
Removing intermediate container a7a97aa37fd1
Step 5/5 : RUN go --help
 ---> Running in 7097438a54e5
Go is a tool for managing Go source code.

Usage:

        go command [arguments]

The commands are:

        build       compile packages and dependencies
        clean       remove object files
        doc         show documentation for package or symbol
        env         print Go environment information
        fix         run go tool fix on packages
        fmt         run gofmt on package sources
        generate    generate Go files by processing source
        get         download and install packages and dependencies
        install     compile and install packages and dependencies
        list        list packages
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         run go tool vet on packages

Use "go help [command]" for more information about a command.

Additional help topics:

        c           calling between Go and C
        buildmode   description of build modes
        filetype    file types
        gopath      GOPATH environment variable
        environment environment variables
        importpath  import path syntax
        packages    description of package lists
        testflag    description of testing flags
        testfunc    description of testing functions

Use "go help [topic]" for more information about that topic.

The command 'cmd /S /C go --help' returned a non-zero code: 2
PS E:\docker\build\unifyworkdir>
Signed-off-by: Harald Albers <github@albersweb.de>
Signed-off-by: Harald Albers <github@albersweb.de>
This allows a plugin to be upgraded without requiring to
uninstall/reinstall a plugin.
Since plugin resources (e.g. volumes) are tied to a plugin ID, this is
important to ensure resources aren't lost.

The plugin must be disabled while upgrading (errors out if enabled).
This does not add any convenience flags for automatically
disabling/re-enabling the plugin during before/after upgrade.

Since an upgrade may change requested permissions, the user is required
to accept permissions just like `docker plugin install`.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This persists the "propagated mount" for plugins outside the main
rootfs. This enables `docker plugin upgrade` to not remove potentially
important data during upgrade rather than forcing plugin authors to hard
code a host path to persist data to.

Also migrates old plugins that have a propagated mount which is in the
rootfs on daemon startup.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Lewis Daly <lewisdaly@me.com>

Updated uid/gid reference to be more canonical - and signed commit

Signed-off-by: Lewis Daly <lewisdaly@me.com>

Editorial suggestion

I tried my hand at rewriting this a bit for readability. Can you please verify that the facts are correct, especially about the permission changes? You can feel free to squash my commit with yours so that it's signed. You'll need to pull the change from your fork to work on it locally.

Editorial suggestion

I tried my hand at rewriting this a bit for readability. Can you please verify that the facts are correct, especially about the permission changes? You can feel free to squash my commit with yours so that it's signed. You'll need to pull the change from your fork to work on it locally.
Signed-off-by: Harald Albers <github@albersweb.de>
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
Correct this sentence so it reads correctly. "to on a manager" should be
"on a manager".

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Fixes manpages for p and z by downloading a specific version
of go instead of relying on the distro version.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
Update command usage and help.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
Signed-off-by: Harald Albers <github@albersweb.de>
Signed-off-by: Harald Albers <github@albersweb.de>
This fix updates API history and man page for
`docker ps --filter expose/publish`, from the feedback:
moby/moby#27557 (comment)

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Signed-off-by: Harald Albers <github@albersweb.de>
Doc fix for #30761

Signed-off-by: Anusha Ragunathan <anusha.ragunathan@docker.com>
Signed-off-by: allencloud <allen.sun@daocloud.io>
Signed-off-by: Misty Stanley-Jones <misty@docker.com>
cyli and others added 5 commits June 2, 2017 00:11
Signed-off-by: Ying Li <ying.li@docker.com>
This patch adds the untilRemoved option to the ContainerWait API which
allows the client to wait until the container is not only exited but
also removed.

This patch also adds some more CLI integration tests for waiting for a
created container and waiting with the new --until-removed flag.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Handle detach sequence in CLI

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Update Container Wait Conditions

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Apply container wait changes to API 1.30

The set of changes to the containerWait API missed the cut for the
Docker 17.05 release (API version 1.29). This patch bumps the version
checks to use 1.30 instead.

This patch also makes a minor update to a testfile which was added to
the builder/dockerfile package.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Remove wait changes from CLI

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Address minor nits on wait changes

- Changed the name of the tty Proxy wrapper to `escapeProxy`
- Removed the unnecessary Error() method on container.State
- Fixes a typo in comment (repeated word)

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Use router.WithCancel in the containerWait handler

This handler previously added this functionality manually but now uses
the existing wrapper which does it for us.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Add WaitCondition constants to api/types/container

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Address more ContainerWait review comments

- Update ContainerWait backend interface to not return pointer values
  for container.StateStatus type.
- Updated container state's Wait() method comments to clarify that a
  context MUST be used for cancelling the request, setting timeouts,
  and to avoid goroutine leaks.
- Removed unnecessary buffering when making channels in the client's
  ContainerWait methods.
- Renamed result and error channels in client's ContainerWait methods
  to clarify that only a single result or error value would be sent
  on the channel.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Move container.WaitCondition type to separate file

... to avoid conflict with swagger-generated code for API response

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Address more ContainerWait review comments

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
- for service create on node-local networks

Signed-off-by: Alessandro Boch <aboch@docker.com>
This reverts commit 3e911ff.
@andrewhsu
Copy link
Contributor

Datapoint for expected number of files in man directories from docker-ce 17.05.0:

$ rpm -ql docker-ce-17.05.0.ce | grep /usr/share/man/man1 | wc -l
151
$ rpm -ql docker-ce-17.05.0.ce | grep /usr/share/man/man5 | wc -l
2
$ rpm -ql docker-ce-17.05.0.ce | grep /usr/share/man/man8 | wc -l
1

@dnephin
Copy link
Contributor

dnephin commented Jun 2, 2017

@tiborvass Ci was failing because of imports. I forced pushed a commit to this branch with the following changes:

  • dropped the commit which excluded these scripts from linting
  • add missing dependencies to vendor (it's only 3 files, we may as well add them)
  • fixed the imports in both files (your commit only fixed one, and I think it was dropped somehow, because I didn't see the commit you referenced in the description in this PR)

Edit: actually we might be missing github.com/cpuguy83/go-md2man/md2man but lint passes for now, so I think we can worry about it when we add the tasks to generate these docs.

Edit2: actually we need it for unit tests, so adding it

@dnephin
Copy link
Contributor

dnephin commented Jun 2, 2017

If you haven't started on the Makefile/scripts for running these generations, let me know. I can open a PR to add them.

@dnephin dnephin force-pushed the import-man-docs-completion branch from 65306e0 to 875daf0 Compare June 2, 2017 15:12
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Copy link
Contributor

@dnephin dnephin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pushed another commit that removes the old man/Dockerfile and man/glide.*. We shouldn't need either of these anymore.

LGTM

@andrewhsu
Copy link
Contributor

As of d2976d5 I see code changed in the cli dir that are not strictly comments or documentation file related:

$ git diff --stat master tv/import-man-docs-completion | grep '^ cli'
 cli/command/container/attach.go                    |   38 +-
 cli/command/registry.go                            |    4 +-
 cli/command/registry/login.go                      |    4 +
 cli/command/registry_test.go                       |   79 -
 cli/command/service/opts.go                        |   62 +-
 cli/command/service/opts_test.go                   |   27 +-
 cli/command/service/update.go                      |   10 +-
 cli/command/stack/client_test.go                   |   37 -
 cli/command/stack/common.go                        |   10 -
 cli/command/stack/deploy_composefile.go            |   30 +-
 cli/command/stack/deploy_composefile_test.go       |   57 -
 cli/command/stack/remove.go                        |   23 +-
 cli/command/stack/remove_test.go                   |   19 -
 cli/command/system/prune.go                        |   19 +-
 cli/compose/convert/service.go                     |   13 +-
 cli/compose/loader/loader.go                       |   20 +-
 cli/internal/test/network/client.go                |   56 -

For example:

$ git diff master tv/import-man-docs-completion -- cli/command/registry.go
diff --git a/cli/command/registry.go b/cli/command/registry.go
index 802b3a4b8..884fa6ec4 100644
--- a/cli/command/registry.go
+++ b/cli/command/registry.go
@@ -28,9 +28,7 @@ func ElectAuthServer(ctx context.Context, cli Cli) string {
        // the default registry URL might be Windows specific.
        serverAddress := registry.IndexServer
        if info, err := cli.Client().Info(ctx); err != nil {
-               fmt.Fprintf(cli.Err(), "Warning: failed to get default registry endpoint from daemon (%v). Using system default: %s\n", err, serverAddress)
-       } else if info.IndexServerAddress == "" {
-               fmt.Fprintf(cli.Err(), "Warning: Empty registry endpoint from daemon. Using system default: %s\n", serverAddress)
+               fmt.Fprintf(cli.Out(), "Warning: failed to get default registry endpoint from daemon (%v). Using system default: %s\n", err, serverAddress)
        } else {
                serverAddress = info.IndexServerAddress
        }

Are these pulled in because of the associated man-page related commits and are they desirable?

@dnephin
Copy link
Contributor

dnephin commented Jun 2, 2017

@andrewhsu I was looking at that same diff until I realized my error. The problem is you're diffing against master, not 3dfb834. This was branched from 3dfb834. So the diff you're seeing is the inverse diff of changes on master that are not in this branch.

@andrewhsu
Copy link
Contributor

@dnephin cool, thanks for pointing that out. diff now looks good on that front:

$ git diff --stat 3dfb834 tv/import-man-docs-completion | grep '^ cli' # no changes to golang code in cli which is good

@mavenugo mavenugo mentioned this pull request Jun 2, 2017
23 tasks
@tiborvass
Copy link
Collaborator Author

@dnephin About vendor.conf change, I was thinking of not adding it in the main dockerfile, since it's not needed for the cli, just for the man pages. But I don't mind if it's fine for you.

LGTM

@vieux
Copy link
Contributor

vieux commented Jun 2, 2017

LGTM let's merge this soon before it diverges too much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.