This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+tools/docker
2020-09-23 21:25:01 +02:00
..
img Rename dockerfile layer to docker 2016-06-09 23:53:33 -04:00
config.el update copyright to 2020 2020-09-23 21:25:01 +02:00
funcs.el update copyright to 2020 2020-09-23 21:25:01 +02:00
layers.el update copyright to 2020 2020-09-23 21:25:01 +02:00
packages.el update copyright to 2020 2020-09-23 21:25:01 +02:00
README.org [applications] refactor key bindings to tools 2020-06-24 22:43:30 +02:00

Docker layer

/TakeV/spacemacs/media/commit/b24fccdbff0276a38cefd1249c92a32b48deac8f/layers/+tools/docker/img/docker.png

Description

This layer integrates basic container management into Spacemacs.

Features:

  • Syntax highlighting for Docker files
  • Docker build integration
  • TRAMP access to running Docker containers
  • Docker container and image management via docker.el
  • docker-compose integration via docker.el
  • Syntax checking via hadolint
  • Code-Completion via lsp

Install

Docker

To use this configuration layer, add it to your ~/.spacemacs. You will need to add docker to the existing dotspacemacs-configuration-layers list in this file.

You will also need the native package Docker for the actual container management.

Linting

For syntax checking the external library hadolint is necessary. It can either be downloaded from here or build locally with stack as shown below:

  stack install hadolint

LSP

This layer can be enhanced with dockerfile-language-server-nodejs and emacs lsp-mode to provide richer, IDE-like capabilities. To do so set the layer variable docker-dockerfile-backend to lsp like shown below:

  (setq-default dotspacemacs-configuration-layers
                '((docker :variables docker-dockerfile-backend 'lsp)))

In addition you need to install the lsp server's executable in your system. This can be done via npm:

  npm i -g dockerfile-language-server-nodejs

Usage

TRAMP access to docker containers

This relies on the docker-tramp package which uses docker exec available in docker versions > 1.3.

docker-tramp adds a new prefix /docker: that you can use with SPC f f, this prefix allows to access your docker containers and also provides auto-completion of the running containers.

Key bindings

Key binding Description
SPC m c b build current buffer
SPC m c B build current buffer without cache
SPC a t d c list docker containers
SPC a t d C docker-compose commands for current project
SPC a t d d delete image
SPC a t d e unpause container
SPC a t d F pull image
SPC a t d i list docker images
SPC a t d k delete container
SPC a t d o stop container
SPC a t d p pause container
SPC a t d P push image
SPC a t d r restart container
SPC a t d s start container