Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: add SSH agent socket forwarder (docker build --ssh $SSHMOUNTID=$SSH_AUTH_SOCK) #1419

Merged
merged 2 commits into from
Oct 9, 2018

Commits on Oct 5, 2018

  1. bump up buildkit

    Signed-off-by: Akihiro Suda <[email protected]>
    AkihiroSuda committed Oct 5, 2018
    Configuration menu
    Copy the full SHA
    846c38c View commit details
    Browse the repository at this point in the history
  2. build: add SSH agent socket forwarder (`docker build --ssh $SSHMOUNTI…

    …D=$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 [email protected] | 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 <[email protected]>
    AkihiroSuda committed Oct 5, 2018
    Configuration menu
    Copy the full SHA
    db7399a View commit details
    Browse the repository at this point in the history