doomemacs/modules/tools/docker
Henrik Lissner 1a05e2fa64
bump: :tools
NicolasPetton/pass@c721604b3b -> NicolasPetton/pass@ed7031c5c3
Silex/docker.el@6997c86a24 -> Silex/docker.el@d5255a65b7
alphapapa/magit-todos@cadf29d1cc -> alphapapa/magit-todos@debb77b358
andras-simonyi/citeproc-el@290320fc57 -> andras-simonyi/citeproc-el@c61c98b9d2
doomelpa/code-review@26f426e992 -> doomelpa/code-review@c34ff1ee64
editorconfig/editorconfig-emacs@2fed9599bc -> editorconfig/editorconfig-emacs@4b81a59928
emacs-citar/citar-org-roam@761eed6678 -> emacs-citar/citar-org-roam@7d67dccf80
emacs-citar/citar@2c0547db57 -> emacs-citar/citar@885b86f673
emacs-lsp/lsp-mode@02c5ba59ce -> emacs-lsp/lsp-mode@fb88cc6b8b
emacs-straight/eglot@f73594f589 -> emacs-straight/eglot@cd4e45b700
emacs-straight/rainbow-mode@24437ec2c6 -> emacs-straight/rainbow-mode@70ed10d410
emacs-tree-sitter/tree-sitter-langs@5eb24557f5 -> emacs-tree-sitter/tree-sitter-langs@20fbbb8573
emacsorphanage/quickrun@6f96318930 -> emacsorphanage/quickrun@248149b026
hcl-emacs/terraform-mode@39d2fd5bfc -> hcl-emacs/terraform-mode@e8b57df8c2
jacktasia/dumb-jump@d9503c157a -> jacktasia/dumb-jump@ede6a04187
magit/forge@ba35ffc9ba -> magit/forge@b16b6ec4f7
magit/magit@4881835572 -> magit/magit@54d37dc14c
meain/evil-textobj-tree-sitter@9a9edd42a2 -> meain/evil-textobj-tree-sitter@220ceae065
purcell/envrc@33d01388ce -> purcell/envrc@1385e72a73
rejeep/prodigy.el@a3be00d3b9 -> rejeep/prodigy.el@cc68fa9d60
tmalsburg/helm-bibtex@ef07adfeda -> tmalsburg/helm-bibtex@bf184cc311
xuchunyang/osx-dictionary.el@0715e5a3ac -> xuchunyang/osx-dictionary.el@1f5a74f3e5
yoshiki/yaml-mode@3fcb36d603 -> yoshiki/yaml-mode@5b58248ab2
zx2c4/password-store@28cec11f1d -> zx2c4/password-store@b5e965a838
2024-02-04 19:07:25 -05:00
..
config.el feat(format): add :tools docker formatter 2023-09-13 20:21:01 +01:00
doctor.el feat(format): add :tools docker formatter 2023-09-13 20:21:01 +01:00
packages.el bump: :tools 2024-02-04 19:07:25 -05:00
README.org docs(*): replace all-the-icons with nerd-icons 2023-09-16 20:19:11 +02:00

:tools docker

Description   unfold

This module allows you to manipulate Docker images, containers, and more from Emacs.

Provides a major dockerfile-mode to edit Dockerfiles. Additional convenience functions allow images to be built easily.

doom-package:docker-tramp offers TRAMP support for Docker containers.

Maintainers

This module has no dedicated maintainers. Become a maintainer?

Module flags

+lsp
Enable integration for the Dockerfile Language Server.

Hacks

No hacks documented for this module.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module assumes docker, docker-compose and docker-machine binaries are installed and accessible from your PATH.

Optionally, this module also uses the following programs:

TODO Usage

󱌣 This module's usage documentation is incomplete. Complete it?

Docker control

Use M-x docker, select a resource, and then mark or unmark items using the following keybindings (for more marking possibilities, check out politza/tablist):

Binding Description
? List actions
l Configure listing
m Mark item
u Unmark item
t Toggle marks
U Unmark all
s Sort
* r Mark items by regexp
< Shrink column
> Enlarge column
C-c C-e Export to csv

Supported commands

  • docker container: attach, cp, diff, inspect, kill, logs, pause, rename, restart, rm, start, stop, unpause
  • docker image: inspect, pull, push, rm, run, tag
  • docker network: rm
  • docker volume: rm
  • docker-machine: create, env, restart, rm, start, stop
  • docker-compose: build, config, create, down, exec, logs, pull, push, remove, restart, run, start, stop, up You can also enter dired or open a file inside a container or volume.

TRAMP

Offers the TRAMP method docker to access running containers:

C-x C-f /docker:$USER@$CONTAINER:/path/to/file
$USER the user that you want to use (optional)
$CONTAINER the id or name of the container

TODO Configuration

󱌣 This module's configuration documentation is incomplete. Complete it?

Popups

Thanks to magit-popup, all the popups default arguments can be customized. For example, here is how to customize the arguments for docker-image-run-popup:

(setq docker-image-run-arguments '("-i" "-t" "--rm"))

or inside a use-package declaration:

(use-package! docker
  :bind ("C-c d" . docker)
  :custom (docker-image-run-arguments '("-i" "-t" "--rm")))

Other useful variables

Variable Description Default
docker-command The docker binary to use docker
docker-container-default-sort-key Sort key for docker containers ("Image")
docker-container-shell-file-name Shell to use when entering containers /bin/bash
docker-image-default-sort-key Sort key for docker images ("Repository")
docker-machine-default-sort-key Sort key for docker machines ("Name")
docker-network-default-sort-key Sort key for docker networks ("Name")
docker-run-as-root Run docker as root nil
docker-volume-default-sort-key Sort key for docker volumes ("Driver")

Completion in Dockerfiles

By default, the keyword completion function detects the docker-compose version of the current buffer and suggests the appropriate keywords.

You can change the candidates offered by the backend by customizing docker-compose-keywords.

Troubleshooting

Report an issue?

Tramp hangs on Alpine container

Busyboxes built with the ENABLE_FEATURE_EDITING_ASK_TERMINAL config option also send escape sequences, which tramp-wait-for-output doesn't ignore correctly. This was fixed in TRAMP upstream 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 $DOOMDIR/config.el to overwrite tramp-wait-for-output with the patch applied:

(after! tramp
  (require 'docker-tramp-compat))

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

󱌣 This module has no appendix yet. Write one?