==== 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}}