Commit Graph

243 Commits

Author SHA1 Message Date
5e80a64076 Allow setting resource constrains for build
Closes #10191

Allow `docker build` to set --cpu-shares, --cpuset, --memory,
--memory-swap for all containers created by the build.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: e6ae89a45a699bd44f03517396777e34ec76018b
Component: engine
2015-03-18 20:57:13 -04:00
5f00f97ea0 Merge pull request #9882 from ibuildthecloud/labels
Proposal: One Meta Data to Rule Them All => Labels
Upstream-commit: b6ac111abfbed628a80b67f0b092a248083b354c
Component: engine
2015-03-16 20:20:05 -07:00
526e8c6e31 Merge pull request #10591 from duglin/ErrUnknownCmd
Generate an error on unknown Dockerfile instruction
Upstream-commit: 085054db9d8850a7d2c8658bb9a7fdacf7a3ceb8
Component: engine
2015-03-16 17:47:28 -04:00
f32b25fee3 Fix test pull verified
Update pull code to consider any layer download or new tag as an update.
Update hello-world frozen image to be explicitly tagged as frozen, to not interfere with pull tests.  The hello-world is used by pull tests because of its small size and there is no other official image with such a size.

fixes #11383

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 636037c3637eb1d09cc469cebe39ffb915bb0aa9
Component: engine
2015-03-16 12:22:00 -07:00
0a3eeb1d23 Generate an error on unknown Dockerfile instruction
Instead of just printing a warning and going on, this will generate
an error and stop processing.

This used to be part of #10561 but I decided it might need its own
independent discussion/PR as to not derail #10561.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 8a5b50d65dae2d0607e046c57241dd6b46b65c6a
Component: engine
2015-03-13 16:08:34 -07:00
51b13a7774 Allow specification of Label Name/Value pairs in image json content
Save "LABEL" field in Dockerfile into image content.

This will allow a user to save user data into an image, which
can later be retrieved using:

docker inspect IMAGEID

I have copied this from the "Comment" handling in docker images.

We want to be able to add Name/Value data to an image to describe the image,
and then be able to use other tools to look at this data, to be able to do
security checks based on this data.

We are thinking about adding version names,
Perhaps listing the content of the dockerfile.
Descriptions of where the code came from etc.

This LABEL field should also be allowed to be specified in the
docker import --change LABEL:Name=Value
docker commit --change LABEL:Name=Value

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
Upstream-commit: cdfdfbfb6223fdd5b319942d412caac6bc09cdeb
Component: engine
2015-03-13 09:47:09 -07:00
7f7a47b98e Merge pull request #11265 from duglin/ScratchSHfix
Fix builder when num of RUN args is 1
Upstream-commit: 565cff84b1ae13e21fa74af83e58d29bafbca47a
Component: engine
2015-03-12 09:30:56 -05:00
20b7c132ab Merge pull request #11278 from ahmetalpbalkan/win-cli/fakeGIT
integ-cli: use httpserver container for fakeGIT
Upstream-commit: 52f6da223839a5ac1fc003b259b74f6a02fc2858
Component: engine
2015-03-11 18:19:11 -07:00
e4aa3231a3 Update logrus to 0.6.6
Docker-DCO-1.1-Signed-off-by: Jessie Frazelle <hugs@docker.com> (github: jfrazelle)

Docker-DCO-1.1-Signed-off-by: Jessie Frazelle <princess@docker.com> (github: jfrazelle)

Docker-DCO-1.1-Signed-off-by: Jessie Frazelle <jess@docker.com> (github: jfrazelle)
Upstream-commit: 89e2e5fc55620634df3f2c9403594b0f701b0c5c
Component: engine
2015-03-11 11:29:13 -07:00
2c409e6dd8 Fix builder when num of RUN args is 1
FROM scratch
ADD echo /
RUN [ "echo" ]

will die with
  exec: "/bin/sh": stat /bin/sh: no such file or directory

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 645f8a32df3b5b22e5e194664a9f0733709714c9
Component: engine
2015-03-11 07:30:44 -07:00
546ad5a411 integ-cli: use httpserver container for fakeGIT
This change enables `fakeGIT()` to use the new `fakeStorage`
server which is automatically starting a container on the remote test
daemon machine using the git repo directory (when requested).

Fixes the following tests:

- `TestBuildApiLowerDockerfile`
- `TestBuildApiBuildGitWithF`
- `TestBuildApiDoubleDockerfile` (skipped on windows: NTFS case-insensitive)
- `TestBuildFromGIT` (still needs local server)

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 44ffb199d03f0d63a2c9ad05e9fd03a6a08c594d
Component: engine
2015-03-10 22:48:35 -07:00
9863597201 Use server.URL() instead of server.URL
Old way now returns the go type instead of the value

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 40c8e78757a75a9e251223f563fc5adb2bc9bf99
Component: engine
2015-03-09 17:00:45 -07:00
c53e223228 Merge pull request #11159 from duglin/LastModifiedTest
Add an HTTP Last-Modified header testcase
Upstream-commit: feb02a2bbf9b4b4eb8f68bcec652ac687195f462
Component: engine
2015-03-09 19:22:27 -04:00
a630d7f64a Merge pull request #10893 from ahmetalpbalkan/win-cli/BuildViaDockerfileURL-same-host-fix
integ-cli: Implement remote FakeStorage server for build via URL tests
Upstream-commit: 7c4951d552d25c0608c44d03529c6b8cbe5d1e06
Component: engine
2015-03-09 13:33:40 -07:00
60d13dc8cb integ-cli: Implement remote FakeStorage server for build via URL tests
Implemented a FakeStorage alternative that supports spinning
up a remote container on DOCKER_TEST_HOST to serve files over
an offline-compiled Go static web server image so that tests which
use URLs in Dockerfile can build them over at the daemon side.

`fakeStorage` function now automatically chooses if it should
use a local httptest.Server or a remote container.

This fixes the following tests when running against a remote
daemon:

- `TestBuildCacheADD`
- `TestBuildCopyWildcardNoFind`
- `TestBuildCopyWildcardCache`
- `TestBuildADDRemoteFileWithCache`
- `TestBuildADDRemoteFileWithoutCache`
- `TestBuildADDRemoteFileMTime`
- `TestBuildADDLocalAndRemoteFilesWithCache`
- `TestBuildADDLocalAndRemoteFilesWithoutCache`
- `TestBuildFromURLWithF`
- `TestBuildApiDockerFileRemote`

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 2e95bb5f1a65d90f412568d6df82a9e2cdd3e790
Component: engine
2015-03-09 12:03:55 -07:00
f84b953b72 Merge pull request #10813 from chenhanxiao/expose-warning-v2
dispatchers: warn user if try to use EXPOSE ip:hostPort:containerPort
Upstream-commit: 1ff904e045c9415bb6d109742cd7f78316d44fa6
Component: engine
2015-03-08 00:30:27 -05:00
8b5893c4a0 Merge pull request #11186 from ahmetalpbalkan/win-cli/TestBuild-case-sensitive-fix
integ-cli: skip case-sensitive dockerfile tests on windows
Upstream-commit: ecea4a9cc2ddc3e7af5ff3193548e0e8c36b528f
Component: engine
2015-03-06 13:43:01 -05:00
a0c6b78604 Merge pull request #11148 from ahmetalpbalkan/win-cli/chmod-x-fix
pkg/archive: adjust chmod bits on windows
Upstream-commit: a6ddb8de42c731ae8f9e0e1becc2a93a56158a58
Component: engine
2015-03-06 12:28:58 -05:00
b626dcd093 integ-cli: skip case-sensitive dockerfile tests on windows
The tests end up overwriting the `dockerfile` with `Dockerfile` since
windows filesystems are case-insensitive. The following methods are
skipped:

- TestBuildRenamedDockerfile
- TestBuildFromMixedcaseDockerfile

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: d046f56e8826f597ddd1752b9289d93b9054fa9d
Component: engine
2015-03-05 15:50:15 -08:00
bac4428faa dispatchers: warn user if try to use EXPOSE ip:hostPort:containerPort
We could use EXPOSE ip:hostPort:containerPort,
but actually it did as EXPOSE ::containerPort

commit 2275c833 already warned user on daemon side.
This patch will print warning message on client side.

Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
Upstream-commit: 26e85b0db1b896e98071f121fb14b2c6d905ed4f
Component: engine
2015-03-04 21:09:50 -05:00
71919ac23a pkg/archive: adjust chmod bits on windows
This change modifies the chmod bits of build context archives built on
windows to preserve the execute bit and remove the r/w bits from
grp/others.

Also adjusted integ-cli tests to verify permissions based on the platform
the tests are running.

Fixes #11047.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 1a22418f9f1573ca8521831d52c8e0562cb3ef8f
Component: engine
2015-03-04 14:10:37 -08:00
9bfbeabd6c Add an HTTP Last-Modified header testcase
Make sure ADD uses the Last-Modified as the mtime of the file.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 5c05b5c992417cd7c6650b7dc785a06ca51ae228
Component: engine
2015-03-04 13:32:38 -08:00
bc3e4a6737 Support dockerfile and Dockerfile
Closes #10807

Adds support for `dockerfile` ONLY when `Dockerfile` can't be found.
If we're building from a Dockerfile via stdin/URL then always download
it a `Dockerfile` and ignore the -f flag.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 15924f238503ffe44e5fcb99415ff753a36e5971
Component: engine
2015-03-03 18:38:50 -08:00
b74aa8d071 Merge pull request #11029 from brahmaroutu/fixtest_10963
When --net=none enabled, the test uses local filesystem
Upstream-commit: bcbe70588d1ff3ff28d78d56e221ff1efb7bbc47
Component: engine
2015-02-26 17:30:02 -08:00
f720e9d2f5 When --net=none enabled, the test uses local filesystem
Closes #10963
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
Upstream-commit: 17b6583a5a352d5cf6d8ba20b018dc96f231f476
Component: engine
2015-02-26 18:24:34 +00:00
ba75e02a5f integ-cli: a few context cleanups
These cleanup calls were forgotten, adding these to
reduce garbage on windows CI machines.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: f6e95ef3a4d379fa2d5bd42bd293d61768d8208b
Component: engine
2015-02-25 01:09:06 -08:00
d5ee9d6913 Remove leftover debugging artifact in test
Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: e9e993922d3173a292d4caaf35cb913ddc494f0c
Component: engine
2015-02-24 11:44:14 -08:00
10829092be Merge pull request #10908 from duglin/EnvDollarTest
Add a ENV tests with special chars in the values
Upstream-commit: fd185eddf625e810f6cb707df9297e4dfd70b7d0
Component: engine
2015-02-23 15:25:31 -08:00
e430471f3b Merge pull request #10921 from duglin/FixNonverboseBuild
Build w/o verbose hangs w/RUN
Upstream-commit: ac06d0c46a26192c34a3ed782514652895fe5447
Component: engine
2015-02-23 15:15:12 -08:00
f24c530c74 integ-cli: Skip tests assuming daemon/cli are on the same host
Some integration-cli tests assume daemon and cli are running
on the same machine and therefore they examine side effects
of executed docker commands on docker host by reading files
or running other sort of commands.

In case of windows/darwin CLI tests these provide little
or no value and should be OK to skip.

List of skipped tests:
- `TestContainerNetworkMode`
- `TestCpVolumePath`
- `TestCreateVolumesCreated`
- `TestBuildContextCleanup`
- `TestBuildContextCleanupFailedBuild`
- `TestLinksEtcHostsContentMatch`
- `TestRmContainerWithRemovedVolume`
- `TestRunModeIpcHost`
- `TestRunModeIpcContainer`
- `TestRunModePidHost`
- `TestRunNetHost`
- `TestRunDeallocatePortOnMissingIptablesRule`
- `TestRunPortInUse`
- `TestRunPortProxy`
- `TestRunMountOrdering`
- `TestRunModeHostname`
- `TestRunDnsDefaultOptions`
- `TestRunDnsOptionsBasedOnHostResolvConf`
- `TestRunResolvconfUpdater`
- `TestRunVolumesNotRecreatedOnStart`

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: b686b65c9b5f5eabc7a618faf0055aff06e4c0c4
Component: engine
2015-02-23 14:08:05 -08:00
ded807afc8 Add a ENV tests with special chars in the values
Tests a little bit of escaping quotes too

See https://github.com/docker/docker/pull/10431#issuecomment-75163177

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: ed3bc3b9864dff42a7949aa9202ea242e9ed0a9b
Component: engine
2015-02-23 11:31:38 -08:00
7e28069bae Merge pull request #10871 from ahmetalpbalkan/win-cli/TestBuildAddBadLinks-fix
integ-cli: Fix TestBuildAddBadLinks for windows
Upstream-commit: 4ba1128c1857e8c8d3dbbee63b50b600a2d9aed7
Component: engine
2015-02-20 17:27:36 -08:00
fed3219626 Build w/o verbose hangs w/RUN
`docker build -q .` where Dockerfile contains a RUN cmd will hang on the
RUN. It waits for the output stream to close but because of -q we never
attached to the container and end up waiting forever.

The fact that no one noticed this tells me that people may not actually
use -q and if so I wonder if it would make sense to make -q work the may
it does for other commands (like `docker ps`) and make it so it only
shows the container ID at the end.  A -q/quiet option that only hides the
container RUN output apparently isn't really that useful since no one is
using it.  See: https://github.com/docker/docker/issues/4094

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 92c353582c210ebc351f7f5911273af76398a2a8
Component: engine
2015-02-20 13:38:03 -08:00
1269363ae7 integ-cli: Fix TestBuildAddBadLinks for windows
TestBuildAddBadLinks used to build a path by
concenating unix-style forward slashes. Fixed that
by providing a windows-equivalent using `runtime.GOOS`.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: d0dc14e5d6fe5f8ef9d4a8a8dc95fa087439a5b4
Component: engine
2015-02-20 13:24:59 -08:00
89b66e14e3 integration-cli: pass platform-compatible paths to os.Symlink
Although this doesn't fix the test (os.Symlink is not yet
implemented for Windows), this prevents unix-style paths
from being passed to os.Symlink. Also makes code cleaner
for linux.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 4581240e585d5188955507fbd1de1affcd2ffc1b
Component: engine
2015-02-20 12:25:10 -08:00
868befad3f Merge pull request #10913 from ahmetalpbalkan/win-cli/UnixSpecific-skip
integ-cli: Skip some unix-specific cli tests
Upstream-commit: 695bf3348f022e12c2d7deb21f8f3a088c079e89
Component: engine
2015-02-20 10:33:28 -08:00
105231e146 integ-cli: Skip some unix-specific cli tests
Skipping some of the tests closely tied to running in a
unix environment. Windows does not support chmod/chown
and this causes some tests to fail creating desired
behavior.

- `TestBuildWithInaccessibleFilesInContext`: uses chown/chmod
- `TestBuildDockerfileOutsideContext`: uses os.Symlink, not implemented on
  windows
- `TestCpUnprivilegedUser`: uses chmod, and requires 'unprivilegeduser'
  created by Dockerfile (and thus requires to run inside container)
- `TestBuildChownSingleFile`: uses chown

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 492a58f05fe026653e27ed75d3ad4221f2e615b1
Component: engine
2015-02-20 09:51:10 -08:00
314f2be995 Map Commands instead of using them as a slice
The most obvious use case is when one wants to make sure as fast
as possible that a command is a valid Dockerfile command.

Signed-off-by: kargakis <kargakis@users.noreply.github.com>
Upstream-commit: 6ecf23861ec7036aa4210fe6d3b7dbfaaedbd6d0
Component: engine
2015-02-20 15:56:21 +01:00
0aa0a22313 integ-cli: Fix path problems in TestBuildRenamedDockerfile
`TestBuildRenamedDockerfile` tests hard-code unix-style
path building. Made use of `path/filepath` to make these
tests work on Windows as well.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 967d85a28fa1e9a8ac4d668960bca8760af2b722
Component: engine
2015-02-19 14:45:26 -08:00
1a772e99d8 Merge pull request #10555 from duglin/MoreRenamedDockerfileTests
Add more tests around using -f Dockerfile via the CLI
Upstream-commit: 7829e7b40fafdc6bbe4489cf91a01fbf381c73b9
Component: engine
2015-02-19 13:59:35 -08:00
0165e20ef7 Add more tests around using -f Dockerfile via the CLI
Mainly to make sure we don't treat the -f value as relative to the
root of the build context, but instead it must be relative to the current
dir.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: c42d2625d1c86aca5a724ec73d16178cae73ae90
Component: engine
2015-02-18 14:06:58 -08:00
05210fc269 Fixed relative filepath check
Signed-off-by: Jason Sommer <jsdirv@gmail.com>
Upstream-commit: 0826ac1581bdb71b889a0cb260422ce985aca317
Component: engine
2015-02-16 20:38:52 -06:00
01e622e5b7 TestBuildAddTarXz: xz with '-k' due to msys bug
TestBuildAddTarXz/TestBuildAddTarXzGz make exec calls like
'cd %SOME_TEMP_DIR%; xz test.gz' but this fails when called
from integration-cli tests (doesn't fail from msys or cmd shell).

It fails with error: "xz: test.tar: Cannot remove: Permission denied."
Proposing workaround of using the `xz --keep` argument since keeping
test.tar is harmless and it's already in os.TempDir().

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: 2f53820ce409ce1afb6513b7799d094b9c53779d
Component: engine
2015-02-12 15:42:27 -08:00
b2dfebba9a Create builder/command, cut libcontainer dependency on integration-cli
d1e9d07c introduces a dependency to libcontainer and other daemon
related packages through builder package. The only thing test needs
is set of the Dockerfile commands. Extracting them to a separate
package.

This was causing CI tests to not to compile on non-Linux platforms.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
Upstream-commit: ccde3a1f73bb4f64845e736d3173eb6f6935971f
Component: engine
2015-02-11 21:44:31 -08:00
b185b43330 Show err msg on empty 'scratch' Dockerfile
If you have a Dockefile with just:
   FROM scratch

An error is generated but its never shown to the CLI. This PR fixes that.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 1654dfdf146df42a1271696c0290027460cce59a
Component: engine
2015-02-10 11:43:45 -08:00
64a4aefa3d Merge pull request #10671 from tiborvass/remove-fail-word-from-tests
Remove word "fail" from tests
Upstream-commit: d14751bf30a70abe7bc6048af61848eed32ca140
Component: engine
2015-02-09 20:53:15 -08:00
e0ebfad813 Remove word "fail" from tests
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: aadb6289ccd84b9997a43c8b74b2948236f30e76
Component: engine
2015-02-09 18:01:52 -05:00
4413092410 Get list of Dockerfile cmds from builder so we can be smarted in our tests
Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: d1e9d07c1b09a145b881a7ee6d58cc2e860167c8
Component: engine
2015-02-08 08:09:02 -08:00
d3182181ac Add support for no-arg commands in Dockerfile
We're hoping to add some new commands that don't have any args so this
PR will enable that by removing all of the hard-coded checks that require
commands to have at least one arg.  It also adds some checks to each
command so we're consistent in the error message we get.  Added a test
for this too.

We actually had this check in at least 3 different places (twice in the
parser and once in most cmds), this removes 2 of them (the parser ones).

Had to remove/modify some testcases because its now legal to have certain
commands w/o args - e.g. RUN. This was actually inconsistent because
we used to allow "RUN []" but not "RUN" even though they would generate
(almost) the same net result.  Now we're consistent.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: e4f02abb51534e560311b0afcfb7b586d9587e67
Component: engine
2015-02-08 03:36:49 -08:00
31dee84599 Merge pull request #10607 from chenhanxiao/enable-upper-proto
nat: enable upper case proto
Upstream-commit: f208201375278e0e572d2a7f5a57e5c8b2ee1e4b
Component: engine
2015-02-07 16:56:35 -08:00