{
"parser_directives": {
"syntax": null,
"escape": null,
"check": null
},
"instructions": [
{
"kind": "FROM",
"from": {
"span": {
"start": 224,
"end": 228
}
},
"options": [],
"image": {
"span": {
"start": 229,
"end": 235
},
"value": "ubuntu"
},
"as_": null
},
{
"kind": "ADD",
"add": {
"span": {
"start": 237,
"end": 240
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 241,
"end": 245
},
"value": "/foo"
}
}
],
"dest": {
"span": {
"start": 246,
"end": 250
},
"value": "/bar"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 251,
"end": 254
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 266,
"end": 266
},
"expand": true,
"value": ""
}
}
],
"dest": {
"span": {
"start": 261,
"end": 265
},
"value": "/bar"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 270,
"end": 273
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 285,
"end": 293
},
"expand": true,
"value": "TESTING\n"
}
}
],
"dest": {
"span": {
"start": 280,
"end": 284
},
"value": "/bar"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 297,
"end": 300
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 313,
"end": 322
},
"expand": true,
"value": "TESTING\n"
}
}
],
"dest": {
"span": {
"start": 308,
"end": 312
},
"value": "/bar"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 326,
"end": 329
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 343,
"end": 351
},
"expand": false,
"value": "TESTING\n"
}
}
],
"dest": {
"span": {
"start": 338,
"end": 342
},
"value": "/bar"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 355,
"end": 358
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 378,
"end": 401
},
"expand": true,
"value": "this is the first file\n"
}
},
{
"here_doc": {
"span": {
"start": 406,
"end": 430
},
"expand": true,
"value": "this is the second file\n"
}
}
],
"dest": {
"span": {
"start": 373,
"end": 377
},
"value": "/bar"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 435,
"end": 438
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 458,
"end": 473
},
"expand": true,
"value": "this is inline\n"
}
},
{
"path": {
"span": {
"start": 445,
"end": 452
},
"value": "foo.txt"
}
}
],
"dest": {
"span": {
"start": 453,
"end": 457
},
"value": "/bar"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 477,
"end": 480
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 495,
"end": 504
},
"expand": true,
"value": "\"quotes\"\n"
}
}
],
"dest": {
"span": {
"start": 487,
"end": 494
},
"value": "/quotes"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 509,
"end": 513
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 514,
"end": 518
},
"value": "/foo"
}
}
],
"dest": {
"span": {
"start": 519,
"end": 523
},
"value": "/bar"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 524,
"end": 528
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 540,
"end": 540
},
"expand": true,
"value": ""
}
}
],
"dest": {
"span": {
"start": 535,
"end": 539
},
"value": "/bar"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 544,
"end": 548
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 560,
"end": 568
},
"expand": true,
"value": "TESTING\n"
}
}
],
"dest": {
"span": {
"start": 555,
"end": 559
},
"value": "/bar"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 572,
"end": 576
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 589,
"end": 598
},
"expand": true,
"value": "TESTING\n"
}
}
],
"dest": {
"span": {
"start": 584,
"end": 588
},
"value": "/bar"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 602,
"end": 606
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 620,
"end": 628
},
"expand": false,
"value": "TESTING\n"
}
}
],
"dest": {
"span": {
"start": 615,
"end": 619
},
"value": "/bar"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 632,
"end": 636
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 656,
"end": 679
},
"expand": true,
"value": "this is the first file\n"
}
},
{
"here_doc": {
"span": {
"start": 684,
"end": 708
},
"expand": true,
"value": "this is the second file\n"
}
}
],
"dest": {
"span": {
"start": 651,
"end": 655
},
"value": "/bar"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 713,
"end": 717
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 737,
"end": 752
},
"expand": true,
"value": "this is inline\n"
}
},
{
"path": {
"span": {
"start": 724,
"end": 731
},
"value": "foo.txt"
}
}
],
"dest": {
"span": {
"start": 732,
"end": 736
},
"value": "/bar"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 756,
"end": 760
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 775,
"end": 784
},
"expand": true,
"value": "\"quotes\"\n"
}
}
],
"dest": {
"span": {
"start": 767,
"end": 774
},
"value": "/quotes"
}
},
{
"kind": "RUN",
"run": {
"span": {
"start": 789,
"end": 792
}
},
"options": [],
"arguments": {
"exec": {
"span": {
"start": 793,
"end": 804
},
"value": [
{
"span": {
"start": 795,
"end": 797
},
"value": "ls"
},
{
"span": {
"start": 801,
"end": 802
},
"value": "/"
}
]
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 805,
"end": 808
}
},
"options": [],
"arguments": {
"exec": {
"span": {
"start": 809,
"end": 818
},
"value": [
{
"span": {
"start": 811,
"end": 816
},
"value": "<<EOF"
}
]
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 819,
"end": 822
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 823,
"end": 827
},
"value": "ls /"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 828,
"end": 831
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 837,
"end": 837
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 838,
"end": 850
},
"expand": true,
"value": "ls /\nwhoami\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 861,
"end": 864
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 872,
"end": 881
},
"value": " | python"
}
},
"here_docs": [
{
"span": {
"start": 882,
"end": 912
},
"expand": false,
"value": "print(\"hello\")\nprint(\"world\")\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 916,
"end": 919
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 926,
"end": 926
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 927,
"end": 938
},
"expand": true,
"value": "echo test\n"
}
]
},
{
"kind": "FROM",
"from": {
"span": {
"start": 1167,
"end": 1171
}
},
"options": [],
"image": {
"span": {
"start": 1172,
"end": 1182
},
"value": "alpine:3.6"
},
"as_": null
},
{
"kind": "ENV",
"env": {
"span": {
"start": 1184,
"end": 1187
}
},
"arguments": {
"span": {
"start": 1188,
"end": 1195
},
"value": "NAME=me"
}
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1197,
"end": 1200
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1201,
"end": 1203
},
"value": "ls"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1270,
"end": 1273
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1281,
"end": 1281
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1282,
"end": 1282
},
"expand": true,
"value": ""
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1358,
"end": 1361
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1362,
"end": 1375
},
"value": "\"<<NOHEREDOC\""
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1377,
"end": 1380
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1389,
"end": 1389
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1390,
"end": 1400
},
"expand": true,
"value": "\tfoo\n\tbar\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1408,
"end": 1411
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1423,
"end": 1423
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1424,
"end": 1435
},
"expand": true,
"value": "baz\nquux\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1445,
"end": 1448
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1461,
"end": 1461
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1462,
"end": 1474
},
"expand": true,
"value": "baz\nquux\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1485,
"end": 1488
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1498,
"end": 1498
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1499,
"end": 1513
},
"expand": true,
"value": "expand $NAME\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1521,
"end": 1524
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1538,
"end": 1538
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1539,
"end": 1560
},
"expand": false,
"value": "do not expand $NAME\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1570,
"end": 1573
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1580,
"end": 1580
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1581,
"end": 1611
},
"expand": true,
"value": "echo hello world\necho foo bar\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1617,
"end": 1620
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1630,
"end": 1630
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1631,
"end": 1699
},
"expand": true,
"value": "# internal comment\necho hello world\necho foo bar # trailing comment\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1708,
"end": 1711
}
},
"options": [
{
"flag_start": 1712,
"name": {
"span": {
"start": 1714,
"end": 1719
},
"value": "mount"
},
"value": {
"span": {
"start": 1720,
"end": 1742
},
"value": "type=cache,target=/foo"
}
}
],
"arguments": {
"shell": {
"span": {
"start": 1750,
"end": 1750
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 1751,
"end": 1762
},
"expand": true,
"value": "echo hello\n"
}
]
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 1769,
"end": 1773
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 1796,
"end": 1806
},
"expand": true,
"value": "content 1\n"
}
},
{
"here_doc": {
"span": {
"start": 1812,
"end": 1822
},
"expand": true,
"value": "content 2\n"
}
}
],
"dest": {
"span": {
"start": 1790,
"end": 1795
},
"value": "/dest"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 1829,
"end": 1833
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 1848,
"end": 1860
},
"expand": true,
"value": "\"foo\"\n'bar'\n"
}
}
],
"dest": {
"span": {
"start": 1840,
"end": 1847
},
"value": "/quotes"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 1865,
"end": 1869
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 1884,
"end": 1886
},
"expand": true,
"value": "Y\n"
}
},
{
"here_doc": {
"span": {
"start": 1888,
"end": 1890
},
"expand": true,
"value": "X\n"
}
}
],
"dest": {
"span": {
"start": 1878,
"end": 1883
},
"value": "/dest"
}
},
{
"kind": "RUN",
"run": {
"span": {
"start": 1900,
"end": 1903
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 1913,
"end": 1921
},
"value": " python3"
}
},
"here_docs": [
{
"span": {
"start": 1922,
"end": 1943
},
"expand": true,
"value": "print('hello world')\n"
}
]
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 1952,
"end": 1956
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 1974,
"end": 1986
},
"expand": true,
"value": "hello world\n"
}
}
],
"dest": {
"span": {
"start": 1968,
"end": 1973
},
"value": "/dest"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 1996,
"end": 2000
}
},
"options": [],
"src": [
{
"here_doc": {
"span": {
"start": 2015,
"end": 2027
},
"expand": false,
"value": "hello world\n"
}
}
],
"dest": {
"span": {
"start": 2009,
"end": 2014
},
"value": "/dest"
}
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2032,
"end": 2035
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2043,
"end": 2043
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 2044,
"end": 2053
},
"expand": false,
"value": "echo foo\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2058,
"end": 2061
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2069,
"end": 2069
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 2070,
"end": 2079
},
"expand": true,
"value": "echo foo\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2085,
"end": 2088
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2098,
"end": 2098
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 2099,
"end": 2108
},
"expand": false,
"value": "echo foo\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2114,
"end": 2117
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2129,
"end": 2129
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 2130,
"end": 2139
},
"expand": false,
"value": "echo bar\n"
}
]
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2148,
"end": 2151
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2158,
"end": 2158
},
"value": ""
}
},
"here_docs": [
{
"span": {
"start": 2159,
"end": 2159
},
"expand": true,
"value": ""
}
]
},
{
"kind": "ADD",
"add": {
"span": {
"start": 2246,
"end": 2249
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2250,
"end": 2252
},
"value": "<<"
}
}
],
"dest": {
"span": {
"start": 2253,
"end": 2261
},
"value": "/no-here"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 2262,
"end": 2265
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2266,
"end": 2270
},
"value": "<<''"
}
}
],
"dest": {
"span": {
"start": 2271,
"end": 2279
},
"value": "/no-here"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 2280,
"end": 2283
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2284,
"end": 2288
},
"value": "<<\"\""
}
}
],
"dest": {
"span": {
"start": 2289,
"end": 2297
},
"value": "/no-here"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 2298,
"end": 2301
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2302,
"end": 2305
},
"value": "<<-"
}
}
],
"dest": {
"span": {
"start": 2306,
"end": 2314
},
"value": "/no-here"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 2315,
"end": 2318
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2319,
"end": 2324
},
"value": "<<-''"
}
}
],
"dest": {
"span": {
"start": 2325,
"end": 2333
},
"value": "/no-here"
}
},
{
"kind": "ADD",
"add": {
"span": {
"start": 2334,
"end": 2337
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2338,
"end": 2343
},
"value": "<<-\"\""
}
}
],
"dest": {
"span": {
"start": 2344,
"end": 2352
},
"value": "/no-here"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 2353,
"end": 2357
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2358,
"end": 2360
},
"value": "<<"
}
}
],
"dest": {
"span": {
"start": 2361,
"end": 2369
},
"value": "/no-here"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 2370,
"end": 2374
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2375,
"end": 2379
},
"value": "<<''"
}
}
],
"dest": {
"span": {
"start": 2380,
"end": 2388
},
"value": "/no-here"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 2389,
"end": 2393
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2394,
"end": 2398
},
"value": "<<\"\""
}
}
],
"dest": {
"span": {
"start": 2399,
"end": 2407
},
"value": "/no-here"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 2408,
"end": 2412
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2413,
"end": 2416
},
"value": "<<-"
}
}
],
"dest": {
"span": {
"start": 2417,
"end": 2425
},
"value": "/no-here"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 2426,
"end": 2430
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2431,
"end": 2436
},
"value": "<<-''"
}
}
],
"dest": {
"span": {
"start": 2437,
"end": 2445
},
"value": "/no-here"
}
},
{
"kind": "COPY",
"copy": {
"span": {
"start": 2446,
"end": 2450
}
},
"options": [],
"src": [
{
"path": {
"span": {
"start": 2451,
"end": 2456
},
"value": "<<-\"\""
}
}
],
"dest": {
"span": {
"start": 2457,
"end": 2465
},
"value": "/no-here"
}
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2466,
"end": 2469
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2470,
"end": 2472
},
"value": "<<"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2473,
"end": 2476
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2477,
"end": 2488
},
"value": "<< /no-here"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2489,
"end": 2492
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2493,
"end": 2497
},
"value": "<<''"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2498,
"end": 2501
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2502,
"end": 2515
},
"value": "<<'' /no-here"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2516,
"end": 2519
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2520,
"end": 2524
},
"value": "<<\"\""
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2525,
"end": 2528
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2529,
"end": 2542
},
"value": "<<\"\" /no-here"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2543,
"end": 2546
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2547,
"end": 2550
},
"value": "<<-"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2551,
"end": 2554
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2555,
"end": 2567
},
"value": "<<- /no-here"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2568,
"end": 2571
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2572,
"end": 2577
},
"value": "<<-''"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2578,
"end": 2581
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2582,
"end": 2596
},
"value": "<<-'' /no-here"
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2597,
"end": 2600
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2601,
"end": 2606
},
"value": "<<-\"\""
}
},
"here_docs": []
},
{
"kind": "RUN",
"run": {
"span": {
"start": 2607,
"end": 2610
}
},
"options": [],
"arguments": {
"shell": {
"span": {
"start": 2611,
"end": 2625
},
"value": "<<-\"\" /no-here"
}
},
"here_docs": []
}
]
}