This is an old revision of the document!


Dockerfile and docker-compose Filetype

Dockerfile is a file format used to build Docker images.
docker-compose.yml is a file format to build and run multiple Docker containers; using docker-compose.

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*;
YML=*.yaml;*.yml;
[Groups]
Script=Dockerfile;
Misc=YML;

Step 2)

Save the configuration file below in your Geany filetype definition files config directory, e.g. ~/.config/geany/filedefs/filetypes.Dockerfile.conf

filetypes.Dockerfile.conf
# For complete documentation of this file, please see Geany's main documentation
#
# Geany Color Syntax support for Dockerfiles 
#
# version 0.2
#
# 0.1 -  original version
# 0.2 -  base on Sh instead - fixes problems with //, #, /* 
 
[styling=C]
 
[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 volumes web devices 
 
[lexer_properties=C]
 
[settings]
lexer_filetype=Sh
tag_parser=C
extension=
# 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=true
# context action command (please see Geany's main documentation for details)
context_action_cmd=xdg-open "https://docs.docker.com/engine/reference/builder/"

Step 3)

Save the configuration file below in your Geany filetype definition files config directory, e.g. ~/.config/geany/filedefs/filetypes.YML.conf

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

Step 4)

Enable docker-compose syntax highlighting, by disabling the default Scintilla YAML version, and use the one in Step 3) instead.

Comment out row starting with YAML in global “filetype_extensions.conf”
from : YAML=*.yaml;*.yml;
to : #YAML=*.yaml;*.yml;

Print/export