oak_dockerfile/ast/
mod.rs1#![doc = include_str!("readme.md")]
2use oak_core::Range;
3
4#[derive(Debug, PartialEq, Clone)]
6pub struct DockerfileRoot {
7 pub instructions: Vec<Instruction>,
8}
9
10#[derive(Debug, PartialEq, Clone)]
12pub enum Instruction {
13 From { image: String, tag: Option<String>, span: Range<usize> },
14 Run { command: String, span: Range<usize> },
15 Copy { src: String, dest: String, span: Range<usize> },
16 Add { src: String, dest: String, span: Range<usize> },
17 Workdir { path: String, span: Range<usize> },
18 Expose { port: String, span: Range<usize> },
19 Env { key: String, value: String, span: Range<usize> },
20 Cmd { command: String, span: Range<usize> },
21 Entrypoint { command: String, span: Range<usize> },
22 Volume { path: String, span: Range<usize> },
23 User { user: String, span: Range<usize> },
24 Label { key: String, value: String, span: Range<usize> },
25 Arg { name: String, default: Option<String>, span: Range<usize> },
26 Onbuild { instruction: Box<Instruction>, span: Range<usize> },
27 Stopsignal { signal: String, span: Range<usize> },
28 Healthcheck { command: String, span: Range<usize> },
29 Shell { shell: String, span: Range<usize> },
30}