Commit Graph

105 Commits

Author SHA1 Message Date
dc1c238ed6 Use channels and set workers to make image lookup safe
This refactors the starting work by the prior commits to make this safe
for access.  A maximum of 5 worker go routines are started to lookup
images on the endpoint.  Another go routine consumes the images that are
required to be pushed into a map for quick lookups.  The map is required
because the pushing of the image json and layer have to be done in the
correct order or the registry will explode in fire.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: 476cf1b906ca14cc3ce1347f1aa479713fa6ce6e
Component: engine
2015-01-13 15:52:44 -08:00
0f5c9b554c Replace custom waiting code with a WaitGroup
Signed-off-by: Ian Calvert <ianjcalvert@gmail.com>
Upstream-commit: 33286589291a56fe0a4728f8b45ad3feb5494226
Component: engine
2015-01-13 15:32:47 -08:00
1f4175ede8 Run the remote image presence checks in parallel
Signed-off-by: Ian Calvert <ianjcalvert@gmail.com>
Upstream-commit: 90c5ff4f06b8672cd2b427d120a8988bfc9f1de7
Component: engine
2015-01-13 15:32:47 -08:00
5aa04a56fb Deprecating ResolveRepositoryName
Passing RepositoryInfo to ResolveAuthConfig, pullRepository, and pushRepository

Moving --registry-mirror configuration to registry config

Created resolve_repository job

Repo names with 'index.docker.io' or 'docker.io' are now synonymous with omitting an index name.

Adding test for RepositoryInfo

Adding tests for opts.StringSetOpts and registry.ValidateMirror

Fixing search term use of repoInfo

Adding integration tests for registry mirror configuration

Normalizing LookupImage image name to match LocalName parsing rules

Normalizing repository LocalName to avoid multiple references to an official image

Removing errorOut use in tests

Removing TODO comment

gofmt changes

golint comments cleanup.  renaming RegistryOptions => registry.Options, and RegistryServiceConfig => registry.ServiceConfig

Splitting out builtins.Registry and registry.NewService calls

Stray whitespace cleanup

Moving integration tests for Mirrors and InsecureRegistries into TestNewIndexInfo unit test

Factoring out ValidateRepositoryName from NewRepositoryInfo

Removing unused IndexServerURL

Allowing json marshaling of ServiceConfig.  Exposing ServiceConfig in /info

Switching to CamelCase for json marshaling

PR cleanup; removing 'Is' prefix from boolean members.  Removing unneeded json tags.

Removing non-cleanup related fix for 'localhost:[port]' in splitReposName

Merge fixes for gh9735

Fixing integration test

Reapplying #9754

Adding comment on config.IndexConfigs use from isSecureIndex

Remove unused error return value from isSecureIndex

Signed-off-by: Don Kjer <don.kjer@gmail.com>

Adding back comment in isSecureIndex

Signed-off-by: Don Kjer <don.kjer@gmail.com>
Upstream-commit: 568f86eb186731b907b659e4ec64bda21c2fe31d
Component: engine
2015-01-08 20:14:58 +00:00
1a4a1b2193 Have .dockerignore support Dockerfile/.dockerignore
If .dockerignore mentions either then the client will send them to the
daemon but the daemon will erase them after the Dockerfile has been parsed
to simulate them never being sent in the first place.

an events test kept failing for me so I tried to fix that too

Closes #8330

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 6d801a3caa54ad7ef574bc426aa1ffc412c5af82
Component: engine
2015-01-06 10:57:48 -08:00
57eaf85313 Fixing ValidateTagName error message
Signed-off-by: Don Kjer <don.kjer@gmail.com>
Upstream-commit: b74ccf2a1b9d146fef0bca89a2f6a40eb4c3e486
Component: engine
2014-12-19 22:48:31 +00:00
98bb6eba72 Make FROM scratch a special cased 'no-base' spec
There has been a lot of discussion (issues 4242 and 5262) about making
`FROM scratch` either a special case or making `FROM` optional, implying
starting from an empty file system.

This patch makes the build command `FROM scratch` special cased from now on
and if used does not pull/set the the initial layer of the build to the ancient
image ID (511136ea..) but instead marks the build as having no base image. The
next command in the dockerfile will create an image with a parent image ID of "".
This means every image ever can now use one fewer layer!

This also makes the image name `scratch` a reserved name by the TagStore. You
will not be able to tag an image with this name from now on. If any users
currently have an image tagged as `scratch`, they will still be able to use that
image, but will not be able to tag a new image with that name.

Goodbye '511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158',
it was nice knowing you.

Fixes #4242

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
Upstream-commit: 8936789919c5c8004f346f44a3452d1521818b60
Component: engine
2014-12-18 14:03:38 -08:00
d6330f220b Chnage LookupRemoteImage to return error
This commit is patch for following comment
// TODO: This method should return the errors instead of masking them and returning false

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: 8123c1e9fef0eb0d6b4e89dce4089276b751906c
Component: engine
2014-12-16 16:23:19 -08:00
55ec358b5c Merge pull request #9610 from duglin/Issue9602
Wrap strings that could look like ints in quotes
Upstream-commit: eea9f0e781f5a2cc438aad11315253b6fb42ed9e
Component: engine
2014-12-16 12:02:26 -08:00
34f3fb8d2c Merge pull request #9613 from pwaller/push-err-confusion-fix
Improve message when pushing a non-existent image
Upstream-commit: e6a68a1c871e73c7b3f86839e9c21765fba24430
Component: engine
2014-12-15 09:54:34 -08:00
ba3cc4bafb Wrap strings that could look like ints in quotes
When we use the engine/env object we can run into a situation where
a string is passed in as the value but later on when we json serialize
the name/value pairs, because the string is made up of just numbers
it appears as an integer and not a string - meaning no quotes.  This
can cause parsing issues for clients.

I tried to find all spots where we call env.Set() and the type of the
name being set might end up having a value that could look like an int
(like author). In those cases I switched it to use env.SetJson() instead
because that will wrap it in quotes.

One interesting thing to note about the testcase that I modified is that
the escaped quotes should have been there all along and we were incorrectly
letting it thru. If you look at the metadata stored for that resource you
can see the quotes were escaped and we lost them during the serialization
steps because of the env.Set() stuff.  The use of env is probably not the
best way to do all of this.

Closes: #9602

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: d942c59b696d16def85f6b65ae65c176f66a5562
Component: engine
2014-12-15 05:10:49 -08:00
24d7379326 validate image ID properly & before load
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>

Conflicts:
	graph/load.go
Upstream-commit: bff1d9dbce76bed1e267a067eb4a1a74ef4da312
Component: engine
2014-12-11 16:29:27 -05:00
17bcf3ad85 Improve message when pushing a non-existent image
I was confused earlier when I did:

```
docker push localhost.localdomain:1234/foo
```

Because docker told me:

```
No such id: localhost.localdomain:1234/foo
```

I actually had buried in my mind the solution to this, but the error
message
confused me because I had recently had some fun trying to get the
registry
working and therefore thought it was telling me that I didn't have an
account
on the registry.

This pull request makes it unambiguous that the error is that the
specified
image is unknown.

/cc @cpuguy83

Docker-DCO-1.1-Signed-off-by: Peter Waller <p@pwaller.net> (github: pwaller)
Upstream-commit: 3a08bbc4d29835fe5b8f3d2c5bde442f6a7014a0
Component: engine
2014-12-11 17:57:23 +00:00
e2ca84e5a6 graph/load: add build tags to fix make cross
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
Upstream-commit: 2ec2237909ba51d3fe10a2ee6cfb81f315408f68
Component: engine
2014-11-25 02:06:45 +02:00
8fc694c819 don't call reexec.Init from chrootarchive
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

Conflicts:
	daemon/graphdriver/aufs/aufs_test.go
		fixed conflict caused by imports
Upstream-commit: 209deff9633b82198925846ebcb0a02191553005
Component: engine
2014-11-25 01:03:40 +02:00
9d0c84c559 pkg/chrootarchive: pass TarOptions via CLI arg
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	graph/load.go
		fixed conflict in imports
Upstream-commit: 9c01bc249dc628280f3fc019d5f0e0ace71be248
Component: engine
2014-11-25 01:03:40 +02:00
3a9fe771ef fix missing layers when exporting a full repository
Therer is a bug in the 'skip' decision when exporting a repository
(`docker save repo`)

Only the layers of the first image are included in the archive (the
layers of the next images are missing)

Signed-off-by: Anthony Baire <Anthony.Baire@irisa.fr>
Upstream-commit: b37fdc5dd1db196209ebb860c88a37d67bb2cf98
Component: engine
2014-11-14 14:41:35 +01:00
658637c073 Merge pull request #8964 from jlhawn/image_checksum
Compute TarSum on storage of image layer content
Upstream-commit: 039aa2741fa95ecb21e35a20d60d72018d8296c9
Component: engine
2014-11-13 18:07:20 -08:00
166cb2e350 registry: refactor registry.IsSecure calls into registry.NewEndpoint
Signed-off-by: Tibor Vass <teabee89@gmail.com>
Upstream-commit: 4455f517605f1fd7279bbe9547915f15c037997d
Component: engine
2014-11-12 20:34:03 -06:00
4442912970 improve error message to print the tag
Closes #9001

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
Upstream-commit: bc45428220e4a8d05d9a0cbc701a729f7fe2aa8d
Component: engine
2014-11-11 22:18:40 +00:00
7c60de6972 Add import/pull events to the stream
Closes #8160

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: ef7415258ba5195af7a890d1d52214b3a181a379
Component: engine
2014-11-06 12:12:41 -08:00
5426d99b67 Compute TarSum on storage of image layer content
Now, newly created/imported layers will have the checksum of
the layer diff computed and stored in the image json file.

For now, it is not an error if the computed checksum does not
match an existing checksum, only a warning message is logged. The
eventual goal is to use the checksums in the image JSON to verify
the integrity of the layer contents when doing `docker load` or
`docker pull`, and error out if it does not match.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
Upstream-commit: 059e589c3427b1afa1b112acc931f59b5b063e16
Component: engine
2014-11-05 10:17:55 -08:00
a59bba1a32 Merge pull request #8799 from jlhawn/remove_jsondata_arg
Remove `jsonData` argument from `image.StoreImage`
Upstream-commit: 5b03a21963931f917297e52cb17a62680f1c2a6e
Component: engine
2014-11-03 20:55:40 -05:00
ade837e2a4 Remove jsonData argument from image.StoreImage
The argument specified the json data to save to disk when registering
a new image into the image graph. If it is nil, then the given image
is serialized to json and that is written by default. This default
behavior is sufficient if the given image was originally deserialzed
from this jsonData to begin with which has always been the case.

Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
Upstream-commit: 26184de8ab1dfe812094c55c9becd8ebb60ed7be
Component: engine
2014-11-03 17:39:21 -08:00
b74bf3c41f Skip V2 registry and immediately fallback to V1 when mirrors are provided
Since V2 registry does not yet implement mirrors, when mirrors are given automatically fallback to V1 without checking V2 first.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 9d6391a9ebca6c7bd4b262ebb5a4baf9d2c222f9
Component: engine
2014-10-31 18:10:48 -07:00
6d16ddef35 Do not verify certificate when using --insecure-registry on an HTTPS registry
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	registry/registry.go
	registry/registry_test.go
	registry/service.go
	registry/session.go

Conflicts:
	registry/endpoint.go
	registry/registry.go
Upstream-commit: 6a1ff022b0744213ed588d9c16dbb13ce055eda6
Component: engine
2014-10-30 19:44:09 -04:00
2339e91d29 Refactor IsSecure change
Fix issue with restoring the tag store and setting static configuration
from the daemon. i.e. the field on the TagStore struct must be made
internal or the json.Unmarshal in restore will overwrite the insecure
registries to be an empty struct.

Signed-off-by: Michael Crosby <michael@docker.com>

Conflicts:
	graph/pull.go
	graph/push.go
	graph/tags.go
Upstream-commit: f29b2e48ebfb171f58375b6e355910fc2192aceb
Component: engine
2014-10-30 19:41:55 -04:00
6b54bde512 make http usage for registry explicit
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

Conflicts:
	daemon/config.go
	daemon/daemon.go
	graph/pull.go
	graph/push.go
	graph/tags.go
	registry/registry.go
	registry/service.go
Upstream-commit: 380c8320a78dc16da65d9d13004422ac5a0cca53
Component: engine
2014-10-30 19:41:55 -04:00
bad39206ea Mass gofmt
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
Upstream-commit: ee7dd44c017458c8fe0be8e09569b1238366dca3
Component: engine
2014-10-24 15:11:48 -07:00
2d56e3cbc6 Use logrus everywhere for logging
Fixed #8761

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
Upstream-commit: 7c62cee51edc91634046b4faa6c6f1841cd53ec1
Component: engine
2014-10-24 15:03:06 -07:00
38505617da Fixes #8690
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
Upstream-commit: 373fd1ce16f5699afc55d595ec6a4e684b7483bc
Component: engine
2014-10-21 16:47:43 -07:00
41862f8f56 Merge pull request #8511 from coolljt0725/fix_tag
Fix tag an existed tag name of a repository
Upstream-commit: b90ab68f2a10e3f1e7a3568e7338afc89cbd00bc
Component: engine
2014-10-20 14:32:23 -07:00
e2a55f16e8 Enable V2 pull flow
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 3be4551a9164c5fac577e9e3683dea65c2fc193a
Component: engine
2014-10-10 16:09:56 -07:00
e2eeab4dd3 Update verification message
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 85fd8213afe9497da5df5583d776659ed187c9e9
Component: engine
2014-10-10 16:04:29 -07:00
5ab2b8482f Update manifest format to rename blobsums and use arrays of dictionaries
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 15d5c7f10f56faeaa04f6374341e1cfd3e03cab1
Component: engine
2014-10-10 16:04:29 -07:00
c77de695cd Add status message for V2 pull
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 456f493659d92ef271bc3573c537d10ae5d0847b
Component: engine
2014-10-10 16:04:29 -07:00
3d8d2b7af5 Update pull message and log
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 7d21ea6627ae964425da9bc52bbb9e21b7da3cf9
Component: engine
2014-10-10 16:04:28 -07:00
176bd2dcef Make V2 code more defensive against malformed content
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: e8b8cf61a9c4f905befc3462e7e80ca7729ffe4d
Component: engine
2014-10-10 16:04:28 -07:00
6047debf85 Fix the bug of tag a existed tag name of a repository.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: 5e6f16e34264fa81205c8becbdcd401823261056
Component: engine
2014-10-10 09:18:12 +08:00
1c81511841 Increase the tag length limit from 30 to 128
Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
Upstream-commit: c95b0e02928e28c0bd5400b58b6ed043c1bbff23
Component: engine
2014-10-07 11:29:47 -04:00
7544ab3839 Remove registry v2 code path
As this feature requires more testing it is much safter to get the
underlying changes into the codebase first then enable the feature in
another release after proper testing and verification can be done.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: 1c62e0ae4efad190477f6464e56cd97fee87cbb5
Component: engine
2014-10-03 22:24:14 +00:00
9b0677b8de Merge pull request #8320 from dmcgowan/provenance_pull
Official image provenance pull flow
Upstream-commit: eaaf9e31258ca0af042e07c707f6bbb3afeb293b
Component: engine
2014-10-03 10:56:54 -07:00
1510f709b8 Add comment for permission and fix wrong format variable
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 22e59009e491dc8b32b512e0d2297662d278af45
Component: engine
2014-10-02 17:41:57 -07:00
4d78f5d6d8 Add provenance pull flow for official images
Add support for pulling signed images from a version 2 registry.
Only official images within the library namespace will be pull from the
new registry and check the build signature.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: 7c88e8f13d9f0c68de6da0cd467a541231304dd5
Component: engine
2014-10-01 18:26:06 -07:00
ff11ba1435 Print a status message when pull command is executed
Using repo tag in the status message for better usability, as per review comments
Added documentation and Changed code to print Status after downloads are complete

Addresses #2404

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
Upstream-commit: ecff6303a366a5e8fd178b7baa1c64895a3a3622
Component: engine
2014-10-01 22:55:29 +00:00
082c35423e registry: getting Endpoint ironned out
Signed-off-by: Vincent Batts <vbatts@redhat.com>
Upstream-commit: 61c6f206b073159c5463a083e0d04e5934351dfe
Component: engine
2014-10-01 13:19:40 -07:00
afe8e130e0 Move archive package into pkg/archive
Now that the archive package does not depend on any docker-specific
packages, only those in pkg and vendor, it can be safely moved into pkg.

Signed-off-by: Rafe Colton <rafael.colton@gmail.com>
Upstream-commit: 30d5a42c1f24e26f681b7330249f04fec891aee9
Component: engine
2014-09-29 23:23:36 -07:00
42a0d5d817 Merge pull request #8276 from dqminh/8262-validate-build-tag
Fix #8262: check tag's validity before building.
Upstream-commit: 22bd54be4a3ab1976336035e7196b9c3fe6f251b
Component: engine
2014-09-29 10:57:54 -07:00
aeca106772 Merge pull request #8175 from hqhq/master
graph: add VirtualSize for inspect output
Upstream-commit: 74dbea81d652ed5419b2d4b3e60cca499584144c
Component: engine
2014-09-29 10:50:28 -07:00
ad9bd3a850 check tag's validity before building.
When user passes an invalid tag to `docker build`
(i.e.  `docker build -t abcd:A0123456789B0123456789C0123456789 .`), check the
tag first and terminate-early so user can specify the tag again

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
Upstream-commit: 8833d800bf622dcb6a66da0fe4c7a61a1620b62c
Component: engine
2014-09-29 06:21:54 -04:00