File tree Expand file tree Collapse file tree 2 files changed +35
-1
lines changed
main/groovy/com/avast/gradle/dockercompose/tasks
test/groovy/com/avast/gradle/dockercompose Expand file tree Collapse file tree 2 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -111,7 +111,10 @@ class ComposeUp extends DefaultTask {
111111 String gateway
112112 Map<String , Object > networkSettings = inspection.NetworkSettings
113113 Map<String , Object > networks = networkSettings.Networks
114- if (networks) {
114+ if (networks && networks. every { it. key. toLowerCase(). equals(" host" ) }) {
115+ gateway = ' localhost'
116+ logger. debug(" Will use $gateway as host of $serviceName because it is using HOST network" )
117+ } else if (networks) {
115118 Map.Entry < String , Object > firstNetworkPair = networks. find()
116119 gateway = firstNetworkPair.value.Gateway
117120 logger. debug(" Will use $gateway (network ${ firstNetworkPair.key} ) as host of $serviceName " )
Original file line number Diff line number Diff line change @@ -223,6 +223,37 @@ class DockerComposePluginTest extends Specification {
223223 ''' ]
224224 }
225225
226+ def " expose localhost as a host for container with HOST networking" () {
227+ def projectDir = new TmpDirTemporaryFileProvider (). createTemporaryDirectory(" gradle" , " projectDir" )
228+ new File (projectDir, ' docker-compose.yml' ) << '''
229+ version: '2'
230+ services:
231+ web:
232+ image: nginx
233+ network_mode: host
234+ ports:
235+ - 80
236+ '''
237+ def project = ProjectBuilder . builder(). withProjectDir(projectDir). build()
238+ project. plugins. apply ' java'
239+ project. plugins. apply ' docker-compose'
240+ project. tasks. composeUp. up()
241+ Test test = project. tasks. test as Test
242+ when :
243+ project. dockerCompose. exposeAsEnvironment(test)
244+ project. dockerCompose. exposeAsSystemProperties(test)
245+ then :
246+ test. environment. get(' WEB_HOST' ) == ' localhost'
247+ test. systemProperties. get(' web.host' ) == ' localhost'
248+ cleanup :
249+ project. tasks. composeDown. down()
250+ try {
251+ projectDir. delete()
252+ } catch (ignored) {
253+ projectDir. deleteOnExit()
254+ }
255+ }
256+
226257 def " reads logs of service" () {
227258 def projectDir = new TmpDirTemporaryFileProvider (). createTemporaryDirectory(" gradle" , " projectDir" )
228259 new File (projectDir, ' docker-compose.yml' ) << '''
You can’t perform that action at this time.
0 commit comments