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>
271 lines
6.6 KiB
Plaintext
271 lines
6.6 KiB
Plaintext
================================================================================
|
|
Add
|
|
================================================================================
|
|
|
|
ADD /$FOO ./${bar}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(add_instruction
|
|
(path
|
|
(expansion
|
|
(variable)))
|
|
(path
|
|
(expansion
|
|
(variable)))))
|
|
|
|
================================================================================
|
|
Copy
|
|
================================================================================
|
|
|
|
COPY $FOO ./${bar}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(copy_instruction
|
|
(path
|
|
(expansion
|
|
(variable)))
|
|
(path
|
|
(expansion
|
|
(variable)))))
|
|
|
|
================================================================================
|
|
Special chars
|
|
================================================================================
|
|
|
|
COPY $FOO ./${bar:-abc}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(copy_instruction
|
|
(path
|
|
(expansion
|
|
(variable)))
|
|
(path
|
|
(expansion
|
|
(variable)))))
|
|
|
|
================================================================================
|
|
Env
|
|
================================================================================
|
|
|
|
ENV TEST="foo$BAR" \
|
|
TEST_2=foo\ bar$BAZ \
|
|
TEST_3="foo${bar}" \
|
|
TEST_4=foo\ ${baz}bar
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(env_instruction
|
|
(env_pair
|
|
name: (unquoted_string)
|
|
value: (double_quoted_string
|
|
(expansion
|
|
(variable))))
|
|
(line_continuation)
|
|
(env_pair
|
|
name: (unquoted_string)
|
|
value: (unquoted_string
|
|
(expansion
|
|
(variable))))
|
|
(line_continuation)
|
|
(env_pair
|
|
name: (unquoted_string)
|
|
value: (double_quoted_string
|
|
(expansion
|
|
(variable))))
|
|
(line_continuation)
|
|
(env_pair
|
|
name: (unquoted_string)
|
|
value: (unquoted_string
|
|
(expansion
|
|
(variable))))))
|
|
|
|
================================================================================
|
|
Variables can begin or end with underscores
|
|
================================================================================
|
|
|
|
ENV TEST="$_foo${bar_}"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(env_instruction
|
|
(env_pair
|
|
(unquoted_string)
|
|
(double_quoted_string
|
|
(expansion
|
|
(variable))
|
|
(expansion
|
|
(variable))))))
|
|
|
|
================================================================================
|
|
Empty Env
|
|
================================================================================
|
|
|
|
ENV TEST= \
|
|
TEST_2= \
|
|
TEST_3="foo${bar}" \
|
|
TEST_4=
|
|
ENV FOO=
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(env_instruction
|
|
(env_pair
|
|
(unquoted_string))
|
|
(line_continuation)
|
|
(env_pair
|
|
(unquoted_string))
|
|
(line_continuation)
|
|
(env_pair
|
|
(unquoted_string)
|
|
(double_quoted_string
|
|
(expansion
|
|
(variable))))
|
|
(line_continuation)
|
|
(env_pair
|
|
(unquoted_string)))
|
|
(env_instruction
|
|
(env_pair
|
|
(unquoted_string))))
|
|
|
|
================================================================================
|
|
Expose
|
|
================================================================================
|
|
|
|
EXPOSE $FOO
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(expose_instruction
|
|
(expansion
|
|
(variable))))
|
|
|
|
================================================================================
|
|
From
|
|
================================================================================
|
|
|
|
FROM foo/$FOO:$BAR@sha256:$BAZ AS baz$QUX
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(from_instruction
|
|
(image_spec
|
|
name: (image_name
|
|
(expansion
|
|
(variable)))
|
|
tag: (image_tag
|
|
(expansion
|
|
(variable)))
|
|
digest: (image_digest
|
|
(expansion
|
|
(variable))))
|
|
as: (image_alias
|
|
(expansion
|
|
(variable)))))
|
|
|
|
================================================================================
|
|
Label
|
|
================================================================================
|
|
|
|
LABEL key="value$FOO"
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(label_instruction
|
|
(label_pair
|
|
key: (unquoted_string)
|
|
value: (double_quoted_string
|
|
(expansion
|
|
(variable))))))
|
|
|
|
================================================================================
|
|
Stopsignal
|
|
================================================================================
|
|
|
|
STOPSIGNAL $FOO
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(stopsignal_instruction
|
|
(expansion
|
|
(variable))))
|
|
|
|
================================================================================
|
|
User
|
|
================================================================================
|
|
|
|
USER foo$FOO:bar${bar}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(user_instruction
|
|
user: (unquoted_string
|
|
(expansion
|
|
(variable)))
|
|
group: (unquoted_string
|
|
(expansion
|
|
(variable)))))
|
|
|
|
================================================================================
|
|
Volume
|
|
================================================================================
|
|
|
|
volume /my$FOO /my${bar}
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(volume_instruction
|
|
(path
|
|
(expansion
|
|
(variable)))
|
|
(path
|
|
(expansion
|
|
(variable)))))
|
|
|
|
================================================================================
|
|
Workdir
|
|
================================================================================
|
|
|
|
WORKDIR /tmp/$FOO
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(workdir_instruction
|
|
(path
|
|
(expansion
|
|
(variable)))))
|
|
|
|
================================================================================
|
|
Onbuild
|
|
================================================================================
|
|
|
|
ONBUILD ADD /$FOO ./${bar}
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(source_file
|
|
(onbuild_instruction
|
|
(add_instruction
|
|
(path
|
|
(expansion
|
|
(variable)))
|
|
(path
|
|
(expansion
|
|
(variable))))))
|