@@ -50,10 +50,21 @@ pub struct ComposeConfig {
50
50
51
51
#[ derive( Debug , Deserialize , Serialize ) ]
52
52
pub struct ComposeService {
53
- pub image : String ,
53
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
54
+ pub image : Option < String > ,
55
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
56
+ pub hostname : Option < String > ,
57
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
58
+ pub container_name : Option < String > ,
59
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
60
+ pub build : Option < BuildConfig > ,
54
61
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
55
62
pub command : Option < Command > ,
56
63
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
64
+ pub ports : Option < Vec < String > > ,
65
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
66
+ pub env_file : Option < Vec < String > > ,
67
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
57
68
pub volumes : Option < Vec < String > > ,
58
69
#[ serde( default , skip_serializing_if = "Option::is_none" ) ]
59
70
pub environment : Option < Vec < String > > ,
@@ -65,7 +76,8 @@ pub struct ComposeService {
65
76
66
77
#[ derive( Debug , Deserialize , Serialize ) ]
67
78
pub struct HealthCheck {
68
- pub test : String ,
79
+ #[ serde( rename = "test" , skip_serializing_if = "Option::is_none" ) ]
80
+ pub test : Option < Command > ,
69
81
#[ serde( rename = "interval" , skip_serializing_if = "Option::is_none" ) ]
70
82
pub interval : Option < String > ,
71
83
#[ serde( rename = "timeout" , skip_serializing_if = "Option::is_none" ) ]
@@ -76,6 +88,12 @@ pub struct HealthCheck {
76
88
pub start_period : Option < String > ,
77
89
}
78
90
91
+ #[ derive( Debug , Deserialize , Serialize ) ]
92
+ pub struct BuildConfig {
93
+ #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
94
+ pub context : Option < String >
95
+ }
96
+
79
97
#[ derive( Debug , Deserialize , Serialize ) ]
80
98
#[ serde( untagged) ]
81
99
pub enum Command {
0 commit comments