File tree Expand file tree Collapse file tree 3 files changed +34
-0
lines changed
fixtures/dockerfile-inline Expand file tree Collapse file tree 3 files changed +34
-0
lines changed Original file line number Diff line number Diff 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 > ,
Original file line number Diff line number Diff line change 1+ services :
2+ busybox :
3+ build :
4+ context : .
5+ dockerfile_inline : |
6+ FROM busybox
7+ RUN ls /
Original file line number Diff line number Diff 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+ }
You can’t perform that action at this time.
0 commit comments