doomemacs/modules/tools/docker
Henrik Lissner 037b018cdd
feat: add .doommodule files
These optional dotfiles indicate the root of a module or module
group (:lang), and will later contain module metadata. They will also
serve as an alternative to packages.el and doctor.el, and will aide the
parts of the v3.0 module API concerned with resolving the current module
from a path (`doom-module-from-path`), which currently rely too heavily
on parsing path strings.

For now, however, they're simply placeholders.
2024-09-14 20:47:39 -04:00
..
.doommodule feat: add .doommodule files 2024-09-14 20:47:39 -04: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-08-19 16:21:45 -04:00
README.org docs(docker): use after! & don't recommend use-package! 2024-03-24 18:03:12 -04: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:

(after! docker
  (setq 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?