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