Commit graph

531 commits

Author SHA1 Message Date
Doug Davis
cdb8ea90b0 Fix processing of unset build-args during build
This reverts 26103.  26103 was trying to make it so that if someone did:
  docker build --build-arg FOO .
and FOO wasn't set as an env var then it would pick-up FOO from the
Dockerfile's ARG cmd.  However, it went too far and removed the ability
to specify a build arg w/o any value. Meaning it required the --build-arg
param to always be in the form "name=value", and not just "name".

This PR does the right fix - it allows just "name" and it'll grab the value
from the env vars if set. If "name" isn't set in the env then it still needs
to send "name" to the server so that a warning can be printed about an
unused --build-arg. And this is why buildArgs in the options is now a
*string instead of just a string - 'nil' == mentioned but no value.

Closes #29084

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-12-07 07:41:55 -08:00
Brian Goff
3cb310c210 Merge pull request #28988 from vdemeester/28985-dont-validate-hostname
Remove hostname validation as it seems to break users
2016-12-02 21:16:56 -05:00
Vincent Demeester
6e0666e622
Revert "Fix dockerfile parser with empty line after escape"
This reverts commit 3e1b539e8d.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-12-02 14:15:55 +01:00
Vincent Demeester
ef39256dfb
Remove hostname validation as it seems to break users
Validation is still done by swarmkit on the service side.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-11-30 19:22:07 +01:00
Doug Davis
3676bad041 Merge pull request #28972 from Microsoft/jjh/commentcorrection
Fix incorrect comment
2016-11-30 08:34:15 -05:00
Doug Davis
4a0e295cd1 Merge pull request #28725 from Microsoft/jjh/builderenvcaseinsensitive
Windows: Builder case insensitive env
2016-11-30 08:33:29 -05:00
John Howard
b83076bfc0 Fix incorrect comment
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-11-29 20:05:47 -08:00
John Howard
1b97bb416b WORKDIR set cmd
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-11-28 15:44:10 -08:00
John Howard
49f392ff6b Windows: Builder case insensitive env
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-11-28 10:30:45 -08:00
John Howard
286ab6d69b COPY file . after WORKDIR (now always created)
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-11-23 09:56:02 -08:00
John Howard
a3c4ab9b65 Windows: Allow user in builder
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-11-14 14:10:47 -08:00
lixiaobing10051267
71f144648a fix using wrong function name for MakeTarSumContext
Signed-off-by: lixiaobing10051267 <li.xiaobing1@zte.com.cn>
2016-11-08 17:16:13 +08:00
Doug Davis
eaf0b5708f Fix case where \\ at EOF made the builder ignore the command
Came from looking at issue #27545

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-11-03 05:48:49 -07:00
Michael Crosby
22f3e43e9a Merge pull request #22641 from cpuguy83/build_finalization
Adds ability to flatten image after build
2016-11-01 14:30:18 -07:00
Brian Goff
362369b4bb Adds ability to squash image after build
Allow built images to be squash to scratch.
Squashing does not destroy any images or layers, and preserves the
build cache.

Introduce a new CLI argument --squash to docker build
Introduce a new param to the build API endpoint `squash`

Once the build is complete, docker creates a new image loading the diffs
from each layer into a single new layer and references all the parent's
layers.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-11-01 13:41:59 -04:00
Addam Hardy
f150f42009 Convert Unused ARG error to warning
Signed-off-by: Addam Hardy <addam.hardy@gmail.com>
2016-10-31 21:42:50 -05:00
Yong Tang
6f7e8d1d7f Use filepath.Clean in normaliseWorkdir for windows
As is seem in the comment of `normaliseWorkdir` for windows:
```
...
	//	WORKDIR c:\\foo                 --> C:\foo
	//	WORKDIR \\foo                   --> C:\foo
...
```

However, this is not the case in the current implementation because
`filepath.FromSlash` is used and `FromSlash` does not replace multiple
separator with a single one (`file.Clean` does).
So `normaliseWorkdir` does not truly normalize workdir.

This fix changes the implementation of `normaliseWorkdir` and use
`filepath.Clean` instead of `filepath.FromSlash`.

Additional test cases have been added to the unit test.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-10-31 13:27:05 -07:00
Daniel Nephin
bad849fc82 Generate container create response from swagger spec.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-10-31 11:16:02 -04:00
Qiang Huang
e6866492c4 Fix bunch of typos
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-10-29 15:03:26 +08:00
Doug Davis
9f79043a63 Add a comment about how we don't mkdir during WORKDIR directly
Just to help the next time someone goes looking for it while debugging.
Like @jhowardmsft and I did while looking at #27545.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-10-28 19:24:37 -07:00
Sebastiaan van Stijn
c5adc271b2 Merge pull request #24725 from yongtang/24693-dockerfile-empty-line-after-escape
Fix dockerfile parser with empty line after escape
2016-10-28 13:53:15 -07:00
boucher
bd7d51292c Allow providing a custom storage directory for docker checkpoints
Signed-off-by: boucher <rboucher@gmail.com>
2016-10-28 07:56:05 -04:00
Vincent Demeester
9e206b5512 Merge pull request #27805 from Microsoft/jjh/fixbuildercache
Windows: Fix builder cache bug
2016-10-28 02:49:40 +02:00
John Howard
4f3889e4be Windows: Fix builder cache bug
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-10-27 12:27:30 -07:00
Yong Tang
3e1b539e8d Fix dockerfile parser with empty line after escape
This fix tries to fix the bug reported by #24693 where an empty
line after escape will not be stopped by the parser.

This fix addresses this issue by stop the parser from continue
with an empty line after escape.

An additional integration test has been added.

This fix fixes #24693.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-10-27 10:43:08 -07:00
Sebastiaan van Stijn
62ff3e9083 Merge pull request #27702 from tonistiigi/net-builder0
add --network option for docker build
2016-10-25 21:50:33 -07:00
sandyskies
60813af7ae add --network option for docker build
Signed-off-by: sandyskies <chenmingjie0828@163.com>
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-10-25 10:25:36 -07:00
John Howard
9127818414 Windows: Honour escape directive fully
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-10-21 14:22:14 -07:00
Stephen J Day
aa2cc18745
pkg/archive: remove unnecessary Archive and Reader type
The `archive` package defines aliases for `io.ReadCloser` and
`io.Reader`. These don't seem to provide an benefit other than type
decoration. Per this change, several unnecessary type cases were
removed.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-10-20 19:31:24 -07:00
Alexander Morozov
462cb3855d Merge pull request #27436 from YuPengZTE/devFirst
The first letter should be small in error of remote.go
2016-10-18 12:49:04 -07:00
YuPengZTE
1d238181d9 The first letter should be small in error of remote.go
Signed-off-by: YuPengZTE <yu.peng36@zte.com.cn>
2016-10-17 15:19:10 +08:00
Sebastiaan van Stijn
6f54d70a54 Merge pull request #27174 from duglin/Issue26027
Don't env-var evaluate labels from docker build cmd line
2016-10-14 20:57:41 -07:00
Tonis Tiigi
5fb3b4205a Remove checkpoint methods from builder backend
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-10-11 14:00:29 -07:00
Tibor Vass
f5f0b77cec Merge pull request #26719 from AkihiroSuda/fix-race-builder-vs-container-1
Fix a race found in TestBuildCancellationKillsSleep
2016-10-10 18:54:55 +02:00
John Howard
e85867cb68 Windows: Support credential specs
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-10-06 09:32:22 -07:00
Doug Davis
28a9a7deb0 Don't env-var evaluate labels from docker build cmd line
Fixes #26027

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-10-05 18:17:02 -07:00
Doug Davis
105bc63295 Require continuation char to be last char in a line
While look at #27039 I noticed that we allow for whitespace after
the continuation char (\\) which is wrong. It needs to be the very
last char in the line.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-10-04 09:38:00 -07:00
Akihiro Suda
ed2e79fc03 Fix a race found in TestBuildCancellationKillsSleep
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2016-09-27 16:19:49 +00:00
Tõnis Tiigi
690882c2e7 Implement build cache based on history array
Based on work by KJ Tsanaktsidis

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Signed-off-by: KJ Tsanaktsidis <kjtsanaktsidis@gmail.com>
2016-09-23 11:30:06 -07:00
Vincent Demeester
72f556a9ff Merge pull request #26516 from yongtang/26453-build-bad-syntax
Check bad syntax on dockerfile before building.
2016-09-23 12:24:20 +02:00
allencloud
9279a93f6d correct some nits in comments
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-09-15 12:17:58 +08:00
Darren Stahl
309056648c Windows: Fix wildcard expansion after slash in filename
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-09-14 11:40:57 -07:00
Yong Tang
c8dc2b156a Check bad syntax on dockerfile before building.
This fix tries to address the issue raised in 26453 where bad syntax
on dockerfile is not checked before building, thus user has to wait
before seeing error in dockerfile.

This fix fixes the issue by evaluating all the instructions and check
syntax before dockerfile is invoked actually.

All existing tests pass.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-09-13 21:43:10 -07:00
boucher
d8fef66b03 Initial implementation of containerd Checkpoint API.
Signed-off-by: boucher <rboucher@gmail.com>
2016-09-08 21:31:52 -04:00
Michael Crosby
91e197d614 Add engine-api types to docker
This moves the types for the `engine-api` repo to the existing types
package.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-09-07 11:05:58 -07:00
Vincent Demeester
c73fae2352 Merge pull request #26290 from tonistiigi/govet17
Fix govet for go1.7
2016-09-03 19:27:19 +02:00
Tonis Tiigi
7a8c7b47cf Fix govet for go1.7
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-09-02 19:07:54 -07:00
Thomas Leonard
e95b6b51da Fix exec form of HEALTHCHECK CMD
We attached the JSON flag to the wrong AST node, causing Docker to treat
the exec form ["binary", "arg"] as if the shell form "binary arg" had
been used. This failed if "ls" was not present.

Added a test to detect this.

Fixes #26174

Signed-off-by: Thomas Leonard <thomas.leonard@docker.com>
2016-08-31 17:50:12 +01:00
allencloud
52637848a7 correct some nits in comment and test files
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-08-29 18:37:14 +08:00
sakeven
7d75e42bc9 fmt dockerfile error message
Signed-off-by: sakeven <jc5930@sina.cn>
2016-08-26 18:36:30 +08:00