@@ -75,11 +75,17 @@ class Docker implements Serializable {
75
75
new Image (this , id)
76
76
}
77
77
78
+ String shell () {
79
+ node {
80
+ script. isUnix() ? " sh" : " bat"
81
+ }
82
+ }
83
+
78
84
public Image build (String image , String args = ' .' ) {
79
85
node {
80
86
def commandLine = " docker build -t ${ image} ${ args} "
81
87
82
- script. sh commandLine
88
+ script. " ${ shell() } " commandLine
83
89
this . image(image)
84
90
}
85
91
}
@@ -107,11 +113,11 @@ class Docker implements Serializable {
107
113
public <V> V inside (String args = ' ' , Closure<V> body ) {
108
114
docker. node {
109
115
def toRun = imageName()
110
- if (toRun != id && docker. script. sh (script : " docker inspect -f . ${ id} " , returnStatus : true ) == 0 ) {
116
+ if (toRun != id && docker. script. " ${ shell() } " (script : " docker inspect -f . ${ id} " , returnStatus : true ) == 0 ) {
111
117
// Can run it without registry prefix, because it was locally built.
112
118
toRun = id
113
119
} else {
114
- if (docker. script. sh (script : " docker inspect -f . ${ toRun} " , returnStatus : true ) != 0 ) {
120
+ if (docker. script. " ${ shell() } " (script : " docker inspect -f . ${ toRun} " , returnStatus : true ) != 0 ) {
115
121
// Not yet present locally.
116
122
// withDockerContainer requires the image to be available locally, since its start phase is not a durable task.
117
123
pull()
@@ -125,13 +131,13 @@ class Docker implements Serializable {
125
131
126
132
public void pull () {
127
133
docker. node {
128
- docker. script. sh " docker pull ${ imageName()} "
134
+ docker. script. " ${ shell() } " " docker pull ${ imageName()} "
129
135
}
130
136
}
131
137
132
138
public Container run (String args = ' ' , String command = " " ) {
133
139
docker. node {
134
- def container = docker. script. sh (script : " docker run -d${ args != '' ? ' ' + args : ''} ${ id}${ command != '' ? ' ' + command : ''} " , returnStdout : true ). trim()
140
+ def container = docker. script. " ${ shell() } " (script : " docker run -d${ args != '' ? ' ' + args : ''} ${ id}${ command != '' ? ' ' + command : ''} " , returnStdout : true ). trim()
135
141
new Container (docker, container)
136
142
}
137
143
}
@@ -150,7 +156,7 @@ class Docker implements Serializable {
150
156
public void tag (String tagName = parsedId. tag, boolean force = true ) {
151
157
docker. node {
152
158
def taggedImageName = toQualifiedImageName(parsedId. userAndRepo + ' :' + tagName)
153
- docker. script. sh " docker tag ${ id} ${ taggedImageName} "
159
+ docker. script. " ${ shell() } " " docker tag ${ id} ${ taggedImageName} "
154
160
return taggedImageName;
155
161
}
156
162
}
@@ -160,7 +166,7 @@ class Docker implements Serializable {
160
166
// The image may have already been tagged, so the tagging may be a no-op.
161
167
// That's ok since tagging is cheap.
162
168
def taggedImageName = tag(tagName, force)
163
- docker. script. sh " docker push ${ taggedImageName} "
169
+ docker. script. " ${ shell() } " " docker push ${ taggedImageName} "
164
170
}
165
171
}
166
172
@@ -177,11 +183,11 @@ class Docker implements Serializable {
177
183
}
178
184
179
185
public void stop () {
180
- docker. script. sh " docker stop ${ id} && docker rm -f ${ id} "
186
+ docker. script. " ${ shell() } " " docker stop ${ id} && docker rm -f ${ id} "
181
187
}
182
188
183
189
public String port (int port ) {
184
- docker. script. sh (script : " docker port ${ id} ${ port} " , returnStdout : true ). trim()
190
+ docker. script. " ${ shell() } " (script : " docker port ${ id} ${ port} " , returnStdout : true ). trim()
185
191
}
186
192
}
187
193
0 commit comments