Git Product home page Git Product logo

docker-tramp's Introduction

docker-tramp - TRAMP integration for docker containers for Emacs 28 and earlier

Author: Mario Rodas [email protected]
Version: 0.1.1

docker-tramp.el offers a TRAMP method for Docker containers.

NOTE: docker-tramp.el relies in the docker exec command. Tested with docker version 1.6.x but should work with versions >1.3. Podman also works.

NOTE: Similar functionality is built-in to Emacs from version 29 onwards, so perhaps you don't need this package any more.

Usage

Offers the TRAMP method docker to access running containers

C-x C-f /docker:user@container:/path/to/file

where
  user           is the user that you want to use inside the container (optional)
  container      is the id or name of the container

Multi-hop examples

If you container is hosted on vm.example.net:

/ssh:[email protected]|docker:user@container:/path/to/file

If you need to run the docker command as, say, the root user:

/sudo:root@localhost|docker:user@container:/path/to/file

Troubleshooting

Tramp hangs on Alpine container

Busyboxes built with the ENABLE_FEATURE_EDITING_ASK_TERMINAL config option send also escape sequences, which tramp-wait-for-output doesn't ignores correctly. Tramp upstream fixed in 98a5112 and is available since Tramp>=2.3.

For older versions of Tramp you can dump docker-tramp-compat.el in your load-path somewhere and add the following to your init.el, which overwrites tramp-wait-for-output with the patch applied:

    (require 'docker-tramp-compat)

Tramp does not respect remote PATH

This is a known issue with Tramp, but is not a bug so much as a poor default setting. Adding tramp-own-remote-path to tramp-remote-path will make Tramp use the remote's PATH environment varialbe.

    (add-to-list 'tramp-remote-path 'tramp-own-remote-path)

Converted from docker-tramp.el by el2markdown.

docker-tramp's People

Contributors

legoscia avatar marsam avatar mavit avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.