summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchilleas Pipinellis <axilleas@axilleas.me>2017-08-28 11:54:19 +0200
committerAchilleas Pipinellis <axilleas@axilleas.me>2017-08-28 11:54:19 +0200
commit60708622150c088883f8e99920a3e50a67cb8b39 (patch)
tree54415b026c20dbb42b4dc4bcee9b27c6c7618f57
parenta5af4b9e67d51418f6df7afb5da008dab59b08b7 (diff)
downloadgitlab-ce-docs/update-ci-docker-using-docker-images.tar.gz
Merge docs of logging in Container Registrydocs/update-ci-docker-using-docker-images
-rw-r--r--doc/ci/docker/using_docker_images.md74
1 files changed, 33 insertions, 41 deletions
diff --git a/doc/ci/docker/using_docker_images.md b/doc/ci/docker/using_docker_images.md
index 1fe4e795723..6e8beceb6fe 100644
--- a/doc/ci/docker/using_docker_images.md
+++ b/doc/ci/docker/using_docker_images.md
@@ -388,15 +388,40 @@ that runner.
As an example, let's assume that you want to use the `registry.example.com/private/image:latest`
image which is private and requires you to login into a private container registry.
+
+Let's also assume that these are the login credentials:
+
+| Key | Value |
+|----------|----------------------|
+| registry | registry.example.com |
+| username | my_username |
+| password | my_password |
+
To configure access for `registry.example.com`, follow these steps:
-1. Do a `docker login` on your computer:
+1. Find what the value of `DOCKER_AUTH_CONFIG` should be. There are two ways to
+ accomplish this:
+ - **First way -** Do a `docker login` on your local machine:
- ```bash
- docker login registry.example.com --username my_username --password my_password
- ```
+ ```bash
+ docker login registry.example.com --username my_username --password my_password
+ ```
+
+ Then copy the content of `~/.docker/config.json`.
+ - **Second way -** In some setups, it's possible that Docker client will use
+ the available system keystore to store the result of `docker login`. In
+ that case, it's impossible to read `~/.docker/config.json`, so you will
+ need to prepare the required base64-encoded version of
+ `${username}:${password}` manually. Open a terminal and execute the
+ following command:
+
+ ```bash
+ echo -n "my_username:my_password" | base64
+
+ # Example output to copy
+ bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=
+ ```
-1. Copy the content of `~/.docker/config.json`
1. Create a [secret variable] `DOCKER_AUTH_CONFIG` with the content of the
Docker configuration file as the value:
@@ -410,7 +435,8 @@ To configure access for `registry.example.com`, follow these steps:
}
```
-1. Do a `docker logout` on your computer if you don't need access to the
+1. Optionally,if you followed the first way of finding the `DOCKER_AUTH_CONFIG`
+ value, do a `docker logout` on your computer if you don't need access to the
registry from it:
```bash
@@ -418,7 +444,7 @@ To configure access for `registry.example.com`, follow these steps:
```
1. You can now use any private image from `registry.example.com` defined in
- `image` and/or `services` in your [`.gitlab-ci.yml` file][yaml-priv-reg]:
+ `image` and/or `services` in your `.gitlab-ci.yml` file:
```yaml
image: my.registry.tld:5000/namespace/image:tag
@@ -430,40 +456,6 @@ To configure access for `registry.example.com`, follow these steps:
You can add configuration for as many registries as you want, adding more
registries to the `"auths"` hash as described above.
-### When your Docker Client uses system keystore instead of config.json file
-
-In some setups it's possible, that Docker Client will use available system keystore
-to store `docker login` result. In that case it's impossible to read
-`~/.docker/config.json` file and user needs to prepare required content manually.
-
-Let's assume that we have following login credentials:
-
-| Key | Valye |
-|----------|----------------------|
-| registry | registry.example.com |
-| username | my_username |
-| password | my_password |
-
-Let's prepare a base64 encoded version of `${username}:${password}`. Let's open a terminal
-and execute following command:
-
-```bash
-$ echo -n "my_username:my_password" | base64
-bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=
-```
-
-Having this we can prepare a content for `DOCKER_AUTH_CONFIG` variable:
-
-```json
-{
- "auths": {
- "registry-example.com": {
- "auth": "bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ="
- }
- }
-}
-```
-
## Configuring services
Many services accept environment variables which allow you to easily change