1bf9daef46
This adds support for heredocs in Dockerfiles. This required adding an external scanner to store the required state. Co-authored-by: Camden Cheek <camden@ccheek.com>
100 lines
1.4 KiB
Plaintext
100 lines
1.4 KiB
Plaintext
==================
|
|
Shell command
|
|
==================
|
|
|
|
RUN echo "test"
|
|
|
|
---
|
|
|
|
(source_file
|
|
(run_instruction
|
|
(shell_command
|
|
(shell_fragment))))
|
|
|
|
==================
|
|
Shell command multiline
|
|
==================
|
|
|
|
RUN echo "test" \
|
|
"foo" \
|
|
bar
|
|
|
|
|
|
---
|
|
|
|
(source_file
|
|
(run_instruction
|
|
(shell_command
|
|
(shell_fragment)
|
|
(line_continuation)
|
|
(shell_fragment)
|
|
(line_continuation)
|
|
(shell_fragment))))
|
|
|
|
==================
|
|
Run with shell empty array
|
|
==================
|
|
|
|
run []
|
|
|
|
---
|
|
|
|
(source_file
|
|
(run_instruction
|
|
(json_string_array)))
|
|
|
|
==================
|
|
Run with shell array
|
|
==================
|
|
|
|
run ["echo", "test"]
|
|
|
|
---
|
|
|
|
(source_file
|
|
(run_instruction
|
|
(json_string_array
|
|
(json_string)
|
|
(json_string))))
|
|
|
|
==================
|
|
Run with options
|
|
==================
|
|
|
|
run --mount=type=secret,id=aws,target=/root/.aws/credentials \
|
|
--security=insecure \
|
|
aws s3 cp s3://example.com
|
|
|
|
---
|
|
|
|
(source_file
|
|
(run_instruction
|
|
(mount_param
|
|
(mount_param_param)
|
|
(mount_param_param)
|
|
(mount_param_param))
|
|
(line_continuation)
|
|
(param)
|
|
(line_continuation)
|
|
(shell_command
|
|
(shell_fragment))))
|
|
|
|
==================
|
|
Run with heredoc
|
|
==================
|
|
|
|
RUN cat <<EOF
|
|
test
|
|
EOF
|
|
|
|
---
|
|
|
|
(source_file
|
|
(run_instruction
|
|
(shell_command
|
|
(shell_fragment
|
|
(heredoc_marker)))
|
|
(heredoc_block
|
|
(heredoc_line)
|
|
(heredoc_end))))
|