The Docker CLI
Go to file
Akihiro Suda db7399a016 build: add SSH agent socket forwarder (`docker build --ssh $SSHMOUNTID=$SSH_AUTH_SOCK`)
Unlike `docker build --secret`, `docker build --ssh` allows the build container to
use SSH keys with passphrases.

  $ eval $(ssh-agent)
  $ ssh-add ~/.ssh/id_rsa
  (Input your passphrase here)
  $ docker build --ssh default=$SSH_AUTH_SOCK ...

This feature requires the daemon with `CapExecMountSSH` build capability (moby/moby#37973) .

Currently, the official Dockerfile frontend does not provide the syntax for using the SSH forwarder.

However, the experimental `RUN --mount=type=ssh` syntax can be enabled by using
the Dockerfile frontend image built with the `BUILDTAGS="dfrunmount dfssh"`, via the `# syntax =` "shebang".

The Dockerfile for the Dockerfile frontend is available at  github.com/moby/buildkit/frontend/dockerfile/cmd/dockerfile-frontend)
The pre-built image is also available as `tonistiigi/dockerfile:ssh20181002` .

An example Dockerfile with `RUN --mount=type=ssh`:

  # syntax = tonistiigi/dockerfile:ssh20181002
  FROM alpine
  RUN apk add --no-cache openssh-client
  RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
  RUN --mount=type=ssh ssh git@gitlab.com | tee /hello
  # "Welcome to GitLab, @GITLAB_USERNAME_ASSOCIATED_WITH_SSHKEY" should be printed here

More info available at moby/buildkit#608, moby/buildkit#655

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2018-10-05 19:56:32 +09:00
.github Remove outdated completion reviewers file 2018-08-01 15:08:36 +02:00
cli build: add SSH agent socket forwarder (`docker build --ssh $SSHMOUNTID=$SSH_AUTH_SOCK`) 2018-10-05 19:56:32 +09:00
cmd/docker Remove containerizedengine package dependency from docker/cli/command… 2018-09-11 14:46:30 +02:00
contrib/completion Global Default Address Pool feature support 2018-08-21 14:34:00 -04:00
dockerfiles connhelper: add e2e 2018-09-30 10:24:34 +09:00
docs build: add SSH agent socket forwarder (`docker build --ssh $SSHMOUNTID=$SSH_AUTH_SOCK`) 2018-10-05 19:56:32 +09:00
e2e connhelper: add e2e 2018-09-30 10:24:34 +09:00
experimental fix a number of minor typos 2017-10-31 15:21:51 +05:00
internal Remove unused helath check func 2018-10-02 20:52:34 +02:00
kubernetes Update tests to use gotest.tools 👼 2018-06-08 18:24:26 +02:00
man Merge pull request #1371 from jhowardmsft/jjh/importlcow 2018-09-14 13:00:20 +02:00
opts build: change --console=[auto,false,true] to --progress=[auto,plain,tty] 2018-08-07 18:18:13 +00:00
scripts connhelper: add e2e 2018-09-30 10:24:34 +09:00
service/logs Update tests to use gotest.tools 👼 2018-06-08 18:24:26 +02:00
templates Update tests to use gotest.tools 👼 2018-06-08 18:24:26 +02:00
types Remove unused helath check func 2018-10-02 20:52:34 +02:00
vendor build: add SSH agent socket forwarder (`docker build --ssh $SSHMOUNTID=$SSH_AUTH_SOCK`) 2018-10-05 19:56:32 +09:00
.dockerignore make go build and docker build operations faster 2017-04-27 15:06:57 -07:00
.gitignore Update gitignore 2017-09-27 16:45:35 +02:00
.mailmap Update AUTHORS and mailmap 2018-04-18 13:31:07 -07:00
AUTHORS Update AUTHORS and mailmap 2018-04-18 13:31:07 -07:00
CONTRIBUTING.md Add Contribution guidelines 2017-07-28 11:33:19 -07:00
Jenkinsfile Add a Jenkinsfile 2017-08-16 10:46:43 -04:00
LICENSE Add project files 2017-04-17 17:49:33 -04:00
MAINTAINERS Remove outdated completion reviewers file 2018-08-01 15:08:36 +02:00
Makefile Review comments 2018-09-21 15:43:00 -07:00
NOTICE Add project files 2017-04-17 17:49:33 -04:00
README.md Add jenkins build status to readme 2017-09-15 15:08:28 +02:00
TESTING.md Update TESTING.md to replace testify by gotest.tools 2018-07-02 09:24:28 +02:00
VERSION Bump version to 19.03.0-dev 2018-09-11 13:06:49 +02:00
appveyor.yml Bump Go to 1.10.4 2018-08-28 12:08:52 +02:00
circle.yml Configure CircleCI remote daemon to use version 18.03.1 2018-07-13 11:51:41 +02:00
codecov.yml Fix PR comments 2018-01-03 10:23:32 +01:00
docker.Makefile connhelper: add e2e 2018-09-30 10:24:34 +09:00
gometalinter.json Add support for kubernetes in docker cli 2017-12-26 11:22:32 +01:00
poule.yml Add github templates and initial poule configuration 2017-05-09 16:57:46 +02:00
vendor.conf bump up buildkit 2018-10-05 18:14:03 +09:00

README.md

build status Build Status

docker/cli

This repository is the home of the cli used in the Docker CE and Docker EE products.

Development

docker/cli is developed using Docker.

Build a linux binary:

$ make -f docker.Makefile binary

Build binaries for all supported platforms:

$ make -f docker.Makefile cross

Run all linting:

$ make -f docker.Makefile lint

List all the available targets:

$ make help

In-container development environment

Start an interactive development environment:

$ make -f docker.Makefile shell

In the development environment you can run many tasks, including build binaries:

$ make binary

Legal

Brought to you courtesy of our legal counsel. For more context, please see the NOTICE document in this repo.

Use and transfer of Docker may be subject to certain restrictions by the United States and other governments.

It is your responsibility to ensure that your use and/or transfer does not violate applicable laws.

For more information, please see https://www.bis.doc.gov

Licensing

docker/cli is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.