==== Dockerfile and docker-compose Filetype =====
**Dockerfile** is a file format used to build [[http://www.docker.com|Docker]] images.\\
**docker-compose.yml** is a file format to build and run multiple Docker containers; using [[https://docs.docker.com/compose/|docker-compose]]. \\
[[http://www.docker.com|Docker]] is a computer program that performs operating-system-level virtualization, also known as "containerization"
This page describe how to add basic Dockerfile syntax highlighting on Geany.
In addition, it adds docker-compose syntax highlighting.
===== Step 1) =====
Add the following lines to //~/.config/geany/filetype_extensions.conf// under the respective sections [Extensions] and [Groups]
[Extensions]
Dockerfile=Dockerfile*;dockerfile;*.dockerfile;*.Dockerfile;docker*;
YAML=
YML=*.yaml;*.yml;
[Groups]
Script=Dockerfile;
Misc=YML;
(For the interested : it seems as the default YAML is a built-in, which cannot be removed. The workaround is to introduce the YML file type and to set 'YAML=' which overrides the file mapping. YAML file type will still be visible in the Menu, but matching of yaml files will be to YML file type.)
===== Step 2) =====
Save the configuration file below in your Geany filetype definition files config directory, e.g. //~/.config/geany/filedefs/filetypes.Dockerfile.conf//
# For complete documentation of this file, please see Geany's main documentation
#
# Geany Color Syntax support for Dockerfiles
#
# It can also parse docker-compose files,
# but requires commenting out the YAML-row in the Geany installation filetype_extensions.conf
#
# version 0.3
#
# 0.1 - estadieu.pl@gmail.com # original version
# 0.2 - axelsson.jan@gmail.com # base on Sh instead - fixes problems with //, #, /*
# 0.3 - axelsson.jan@gmail.com # base on Python instead - folding of yml
[styling]
default=default
commentline=comment_line
number=number_1
string=string_1
word=keyword_1
[keywords]
primary= ADD ARG CMD COPY ENTRYPOINT ENV EXPOSE FROM HEALTHCHECK LABEL ONBUILD RUN SHELL STOPSIGNAL USER VOLUME WORKDIR build container_name context command default depends_on dns dockerfile entrypoint environment env_file expose external extra_hosts external_links file hostname image labels links name network ports service services version volumes devices
[settings]
lexer_filetype=Python
# single comments, like # in this file
comment_single=#
# set to false if a comment character/string should start at column 0 of a line, true uses any
# indentation of the line, e.g. setting to true causes the following on pressing CTRL+d
#command_example();
# setting to false would generate this
# command_example();
# This setting works only for single line comments
comment_use_indent=false
# context action command (please see Geany's main documentation for details)
context_action_cmd=xdg-open "https://docs.docker.com/engine/reference/builder/"
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
===== Step 3) =====
Save the configuration file below in your Geany filetype definition files config directory, e.g. //~/.config/geany/filedefs/filetypes.YML.conf//
# For complete documentation of this file, please see Geany's main documentation
[styling]
# Edit these in the colorscheme .conf file instead
default=default
comment=comment
identifier=identifier
keyword=keyword_1
number=number_1
reference=function
document=preprocessor
text=string_1
error=error
operator=operator
[keywords]
# all items must be in one line
keywords= true false yes no
[settings]
lexer_filetype=YAML
# default extension used when saving files
extension=yaml
# MIME type
mime_type=application/x-yaml
# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
# single comments, like # in this file
comment_single=#
# multiline comments
#comment_open=
#comment_close=
# set to false if a comment character/string should start at column 0 of a line, true uses any
# indentation of the line, e.g. setting to true causes the following on pressing CTRL+d
#command_example();
# setting to false would generate this
# command_example();
# This setting works only for single line comments
comment_use_indent=true
# context action command (please see Geany's main documentation for details)
context_action_cmd=
[indentation]
#width=4
# 0 is spaces, 1 is tabs, 2 is tab & spaces
#type=1
(For the interested : this is a copy of the default filetypes.yaml)
{{tag>configure gnuplot filetype Dockerfile}}