Commit Graph

5748 Commits

Author SHA1 Message Date
Sebastiaan van Stijn 166856ab1b
Do not patch Dockerfiles in CI
When building the Dockerfiles for development, those images are mainly used to
create a reproducible build-environment. The source code is bind-mounted into
the image at runtime; there is no need to create an image with the actual
source code, and copying the source code into the image would lead to a new
image being created for each code-change (possibly leading up to many "dangling"
images for previous code-changes).

However, when building (and using) the development images in CI, bind-mounting
is not an option, because the daemon is running remotely.

To make this work, the circle-ci script patched the Dockerfiles when CI is run;
adding a `COPY` to the respective Dockerfiles.

Patching Dockerfiles is not really a "best practice" and, even though the source
code does not and up in the image, the source would still be _sent_ to the daemon
for each build (unless BuildKit is used).

This patch updates the makefiles, circle-ci script, and Dockerfiles;

- When building the Dockerfiles locally, pipe the Dockerfile through stdin.
  Doing so, prevents the build-context from being sent to the daemon. This speeds
  up the build, and doesn't fill up the Docker "temp" directory with content that's
  not used
- Now that no content is sent, add the COPY instructions to the Dockerfiles, and
  remove the code in the circle-ci script to "live patch" the Dockerfiles.

Before this patch is applied (with cache):

```
$ time make -f docker.Makefile build_shell_validate_image
docker build -t docker-cli-shell-validate -f ./dockerfiles/Dockerfile.shellcheck .
Sending build context to Docker daemon     41MB
Step 1/2 : FROM    debian:stretch-slim
...
Successfully built 81e14e8ad856
Successfully tagged docker-cli-shell-validate:latest

2.75 real         0.45 user         0.56 sys
```

After this patch is applied (with cache)::

```
$ time make -f docker.Makefile build_shell_validate_image
cat ./dockerfiles/Dockerfile.shellcheck | docker build -t docker-cli-shell-validate -
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM    debian:stretch-slim
...
Successfully built 81e14e8ad856
Successfully tagged docker-cli-shell-validate:latest

0.33 real         0.07 user         0.08 sys
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2018-11-29 10:44:14 +01:00
Sebastiaan van Stijn e042b58f7d
Merge pull request #1527 from tiborvass/fix-system-prune-filters
prune: move image pruning before build cache pruning
2018-11-21 19:01:48 +01:00
Sebastiaan van Stijn e1d28fad2d
Merge pull request #1493 from tonistiigi/buildkit-docs-update
add more buildkit docs
2018-11-21 17:10:33 +01:00
Tonis Tiigi 83aeb219f0
buildkit reference docs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2018-11-21 16:41:33 +01:00
Silvin Lubecki 5931fb4276
Merge pull request #1528 from thaJeztah/add_logging_driver_example
Update daemon.json example to show that log-opts must be a string
2018-11-21 14:56:14 +01:00
Sebastiaan van Stijn fd33e0d933
Update daemon.json example to show that log-opts must be a string
log-opts are passed to logging-drivers as-is, so the daemon is not
aware what value-type each option takes.

For this reason, all options must be provided as a string, even if
they are used as numeric values by the logging driver.

For example, to pass the "max-file" option to the default (json-file)
logging driver, this value has to be passed as a string;

```json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
```

When passed as a _number_ (`"max-file": 3`), the daemon will invalidate
the configuration file, and fail to start;

    unable to configure the Docker daemon with file /etc/docker/daemon.json: json: cannot unmarshal number into Go value of type string

This patch adds an example to the daemon.json to show these  values
have to be passed as strings.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2018-11-21 13:26:08 +01:00
Tibor Vass 6c10abb247 prune: move image pruning before build cache pruning
This is cleaner because running system prune twice in a row
now results in a no-op the second time.

Signed-off-by: Tibor Vass <tibor@docker.com>
2018-11-21 05:33:36 +00:00
Silvin Lubecki 422baf69f6
Merge pull request #1523 from sudo-bmitch/pr-doc-cmd-entrypoint
Documenting ENTRYPOINT can empty value of CMD
2018-11-20 15:47:34 +01:00
Brandon Mitchell cc316fde55 Documenting ENTRYPOINT can empty value of CMD
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2018-11-17 10:10:15 -05:00
Sebastiaan van Stijn f7ea8e831b
Merge pull request #1521 from albers/completion-fix-service--force
Fix bash completion for `service update --force`
2018-11-15 18:15:32 +01:00
Harald Albers 5fa5eb1da6 Fix bash completion for `service update --force`
- `--force` is not available in `service create`
- `--force` is a boolean option

Signed-off-by: Harald Albers <github@albersweb.de>
2018-11-15 13:43:58 +01:00
Sebastiaan van Stijn 29625f6124
Merge pull request #1415 from dhiltgen/fix_panic_master
Fix panic in display only case for license - forward port #1408 to master
2018-11-15 00:55:48 +01:00
Vincent Demeester 0964455c59
Merge pull request #1520 from ijc/bump-gotest
Bump to gotest.tools v2.2.0
2018-11-14 17:20:42 +01:00
Ian Campbell 986196e3e3 Bump to gotest.tools v2.2.0
I would like to use the regex matcher

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-11-14 11:40:09 +00:00
Silvin Lubecki 3a6f8b6774
Merge pull request #1504 from simonferquel/bump-moby-fix-tests
Bump moby/moby vendoring and fix tests
2018-11-08 11:49:52 +01:00
Simon Ferquel 8efa6a9567 Fix tests with missing mocks
A recent change in moby/moby made tests with missing client mocks fail with panic.
This adds those missing mocks for the impacted tests.

Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2018-11-08 11:37:49 +01:00
Simon Ferquel 561474d770 Vendoring bump for docker/docker
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2018-11-08 11:37:35 +01:00
Silvin Lubecki 6b71e84ec8
Merge pull request #1472 from lifubang/sshlogs
Enhancement: don't need to type ssh password twice when docker logs with ssh
2018-10-26 15:41:39 +01:00
Silvin Lubecki 0904fbfc77
Merge pull request #1369 from vdemeester/formatter-refacto
formatter package heavy refactoring
2018-10-26 10:43:13 +01:00
Lifubang aba8821f60 don't need to type ssh password twice when docker logs with ssh
Signed-off-by: Lifubang <lifubang@acmcoder.com>
2018-10-26 08:22:49 +08:00
Sebastiaan van Stijn 79455f8238
Merge pull request #1325 from dhiltgen/product_license_master
Expose product license in info output
2018-10-26 00:31:32 +02:00
Sebastiaan van Stijn a954005237
Merge pull request #1482 from AkihiroSuda/ssh-nopassword
docs, ssh: unsupport password auth explicitly
2018-10-25 15:01:41 +02:00
Akihiro Suda 16b014e062 docs, ssh: unsupport password auth explicitly
The issue with password auth is tracked in #1476 and #1477 .

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2018-10-25 16:02:26 +09:00
Sebastiaan van Stijn 15e40e7ee2
Merge pull request #1429 from AkihiroSuda/fix-docker-invalid-subcommand
Fix `docker invalid-subcommand` regression
2018-10-24 20:45:01 +02:00
Vincent Demeester 69fdd2a4ad
formatter package heavy refactoring
- make it possible to extract the formatter implementation from the
  "common" code, that way, the formatter package stays small
- extract some formatter into their own packages

This is essentially moving the "formatter" implementation of each type
in their respective packages. The *main* reason to do that, is to be
able to depend on `cli/command/formatter` without depending of the
implementation detail of the formatter. As of now, depending on
`cli/command/formatter` means we depend on `docker/docker/api/types`,
`docker/licensing`, … — that should not be the case. `formatter`
should hold the common code (or helpers) to easily create formatter,
not all formatter implementations.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2018-10-23 17:05:44 +02:00
Tibor Vass ea836abed5
Merge pull request #1474 from tiborvass/fix-build-stream
build: update session support detection
2018-10-22 16:01:12 -07:00
Tibor Vass 3e8c41beb0 build: update session support detection
Avoid testing for session support in non-buildkit builder to support
servers that falsely report as `1.39` compatible

Signed-off-by: Tibor Vass <tibor@docker.com>
2018-10-22 20:52:56 +00:00
Sebastiaan van Stijn 727a83bde2
Merge pull request #1445 from sudo-bmitch/pr-rmi-tag
Updating rmi doc example to specify latest tag
2018-10-19 01:11:23 +02:00
Sebastiaan van Stijn 3eaae8391b
Merge pull request #1447 from sudo-bmitch/pr-daemon-json-formatting
Adjust formatting on daemon.json documentation
2018-10-18 17:52:08 +02:00
Sebastiaan van Stijn 445df70c89
Merge pull request #1424 from thaJeztah/deprecate_devicemapper
Deprecate "devicemapper" storage driver.
2018-10-17 18:15:15 +02:00
Sebastiaan van Stijn 662441ba31
Deprecate "devicemapper" storage driver.
The `devicemapper` storage driver is deprecated in favor of `overlay2`, and will
be removed in a future release. Users of the `devicemapper` storage driver are
recommended to migrate to a different storage driver, such as `overlay2`, which
is now the default storage driver.

The `devicemapper` storage driver facilitates running Docker on older (3.x) kernels
that have no support for other storage drivers (such as overlay2, or AUFS).

Now that support for `overlay2` is added to all supported distros (as they are
either on kernel 4.x, or have support for multiple lowerdirs backported), there
is no reason to continue maintenance of the `devicemapper` storage driver.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2018-10-17 17:59:42 +02:00
Sebastiaan van Stijn 2e385015f7
Merge pull request #1451 from tiborvass/builder-prune-filter-unused-for
builder/prune: rename max-age filter to unused-for in help output
2018-10-17 17:55:44 +02:00
Vincent Demeester bdf4f556a2
Merge pull request #1446 from sudo-bmitch/pr-default-ulimit
Documenting example default-ulimit in daemon.json
2018-10-17 15:30:05 +02:00
Brian Goff a2a7a7cc00
Merge pull request #1443 from acmcodercom/defaulttcpschema
fixes #1441 set default schema to tcp for docker host
2018-10-16 20:58:11 -07:00
Brian Goff 06326c1644
Merge pull request #1425 from thaJeztah/deprecate_overlay
Deprecate legacy overlay storage driver
2018-10-16 19:48:28 -07:00
Brian Goff aef90edbe4
Merge pull request #1449 from acmcodercom/ssherrmsg
err message improve when ssh fail
2018-10-16 19:32:30 -07:00
Tibor Vass c9ce6dc656 builder/prune: rename max-age filter to unused-for in help output
Signed-off-by: Tibor Vass <tibor@docker.com>
2018-10-17 00:35:10 +00:00
Lifubang beed8748c0 add test case TestNewAPIClientFromFlagsForDefaultSchema
Signed-off-by: Lifubang <lifubang@acmcoder.com>
2018-10-16 15:34:54 +08:00
Lifubang 2431dd1448 set default schema to tcp for docker host
Signed-off-by: Lifubang <lifubang@acmcoder.com>
2018-10-16 10:32:03 +08:00
Lifubang 99f336a580 err message improve when ssh fail
Signed-off-by: Lifubang <lifubang@acmcoder.com>
2018-10-15 16:42:14 +08:00
Brandon Mitchell 1c3aa2ea7a Adjust formatting on daemon.json documentation
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2018-10-13 14:07:47 -04:00
Brandon Mitchell 3f4f450941 Documenting example default-ulimit in daemon.json
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2018-10-13 13:53:34 -04:00
Brandon Mitchell f913b73c81 Updating rmi doc example to specify latest tag
Signed-off-by: Brandon Mitchell <git@bmitch.net>
2018-10-13 12:59:56 -04:00
Harald Albers d18aad38d3
Merge pull request #1435 from trapier/bash_completion_service_no_resolve_image
Add bash completion for `service --no-resolve-image`
2018-10-13 10:35:52 +02:00
Trapier Marshall 1695eac4b3 Add bash completion for `service --no-resolve-image`
Signed-off-by: Trapier Marshall <trapier.marshall@docker.com>
2018-10-12 11:02:10 -04:00
Sebastiaan van Stijn b9a1a21fe2
Merge pull request #1426 from kolyshkin/go111-pr1316
Bump Go to 1.11.1
2018-10-11 20:19:20 +02:00
Sebastiaan van Stijn 6153a0967b
Merge pull request #1427 from tiborvass/hide-buildkit-flags-if-not-enabled
build: only show buildkit-specific flags if buildkit is enabled
2018-10-11 11:34:49 +02:00
Kir Kolyshkin 906c2d161a gofmt with go-1.11
gofmt/goimports changed some heuristics in 1.11 and the code is now
formatted slightly differently.

No functional change, just whitespace.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2018-10-11 01:54:38 -07:00
Kir Kolyshkin 9412739186 Bump Go to 1.11.1
Release notes: https://golang.org/doc/devel/release.html#go1.11

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2018-10-11 01:54:19 -07:00
Kir Kolyshkin ee461303f9 scripts/build/osx: set CXX, too
In case go build will see a need to call C++ (rather than C)
compiler, CXX env var need to be properly set (to osxcross wrapper).

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2018-10-11 01:15:33 -07:00