docker.xml

 1<lexer>
 2  <config>
 3    <name>Docker</name>
 4    <alias>docker</alias>
 5    <alias>dockerfile</alias>
 6    <filename>Dockerfile</filename>
 7    <filename>Dockerfile.*</filename>
 8    <filename>*.Dockerfile</filename>
 9    <filename>*.docker</filename>
10    <mime_type>text/x-dockerfile-config</mime_type>
11    <case_insensitive>true</case_insensitive>
12  </config>
13  <rules>
14    <state name="root">
15      <rule pattern="#.*">
16        <token type="Comment"/>
17      </rule>
18      <rule pattern="(ONBUILD)((?:\s*\\?\s*))">
19        <bygroups>
20          <token type="Keyword"/>
21          <using lexer="Bash"/>
22        </bygroups>
23      </rule>
24      <rule pattern="(HEALTHCHECK)(((?:\s*\\?\s*)--\w+=\w+(?:\s*\\?\s*))*)">
25        <bygroups>
26          <token type="Keyword"/>
27          <using lexer="Bash"/>
28        </bygroups>
29      </rule>
30      <rule pattern="(VOLUME|ENTRYPOINT|CMD|SHELL)((?:\s*\\?\s*))(\[.*?\])">
31        <bygroups>
32          <token type="Keyword"/>
33          <using lexer="Bash"/>
34          <using lexer="JSON"/>
35        </bygroups>
36      </rule>
37      <rule pattern="(LABEL|ENV|ARG)((?:(?:\s*\\?\s*)\w+=\w+(?:\s*\\?\s*))*)">
38        <bygroups>
39          <token type="Keyword"/>
40          <using lexer="Bash"/>
41        </bygroups>
42      </rule>
43      <rule pattern="((?:FROM|MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)|VOLUME)\b(.*)">
44        <bygroups>
45          <token type="Keyword"/>
46          <token type="LiteralString"/>
47        </bygroups>
48      </rule>
49      <rule pattern="((?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY))">
50        <token type="Keyword"/>
51      </rule>
52      <rule pattern="(.*\\\n)*.+">
53        <using lexer="Bash"/>
54      </rule>
55    </state>
56  </rules>
57</lexer>