Skip to content

Commit c90be34

Browse files
committed
Merge PR #57: Add support for dockerfile_inline
2 parents ec6de7a + 1f9158b commit c90be34

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,8 @@ pub struct AdvancedBuildStep {
603603
#[serde(default, skip_serializing_if = "Option::is_none")]
604604
pub dockerfile: Option<String>,
605605
#[serde(default, skip_serializing_if = "Option::is_none")]
606+
pub dockerfile_inline: Option<String>,
607+
#[serde(default, skip_serializing_if = "Option::is_none")]
606608
pub args: Option<BuildArgs>,
607609
#[serde(default, skip_serializing_if = "Option::is_none")]
608610
pub shm_size: Option<u64>,
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
services:
2+
busybox:
3+
build:
4+
context: .
5+
dockerfile_inline: |
6+
FROM busybox
7+
RUN ls /

tests/mod.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,28 @@ volumes:
106106
}
107107
let _parsed: Container = from_str(v).unwrap();
108108
}
109+
110+
#[test]
111+
fn parse_dockerfile_inline() {
112+
use docker_compose_types::BuildStep;
113+
use docker_compose_types::Compose;
114+
115+
let file_payload =
116+
std::fs::read_to_string("tests/fixtures/dockerfile-inline/docker-compose.yml").unwrap();
117+
118+
let mut actual_parsed: Compose = from_str(&file_payload).unwrap();
119+
120+
let dockerfile_inline = actual_parsed
121+
.services
122+
.0
123+
.swap_remove("busybox")
124+
.flatten()
125+
.and_then(|service| service.build_)
126+
.map(|build_| match build_ {
127+
BuildStep::Advanced(adv) => adv,
128+
BuildStep::Simple(_) => panic!("Not advanced BuildStep"),
129+
})
130+
.and_then(|adv| adv.dockerfile_inline)
131+
.expect("No dockerfile_inline");
132+
assert!(dockerfile_inline.contains("FROM busybox"));
133+
}

0 commit comments

Comments
 (0)