Support port range for docker-compose v2 (#1345)

* allow port range specification in v1v2

* improve tests for loadPorts

* add port range to fixtures of docker-compose v2

* update fixtures to follow up on #1341
This commit is contained in:
namusyaka
2020-11-04 22:16:33 +08:00
committed by GitHub
parent 119f0b8f70
commit 8b06045c70
7 changed files with 539 additions and 147 deletions
+7 -1
View File
@@ -8,9 +8,15 @@ services:
environment:
GITHUB: surajssd
ports:
- "2345"
- "6379/tcp"
- "6379/udp"
- "3000"
- "3000-3005"
- "8000:8000"
- "9090-9091:8080-8081"
- "49100:22"
- "127.0.0.1:8001:8001"
- "127.0.0.1:5000-5010:5000-5010"
mem_limit: 10000
group_add:
+199 -8
View File
@@ -15,11 +15,6 @@
},
"spec": {
"ports": [
{
"name": "2345",
"port": 2345,
"targetPort": 2345
},
{
"name": "6379",
"port": 6379,
@@ -30,6 +25,121 @@
"protocol": "UDP",
"port": 6379,
"targetPort": 6379
},
{
"name": "3000",
"port": 3000,
"targetPort": 3000
},
{
"name": "3000-tcp",
"port": 3000,
"targetPort": 3000
},
{
"name": "3001",
"port": 3001,
"targetPort": 3001
},
{
"name": "3002",
"port": 3002,
"targetPort": 3002
},
{
"name": "3003",
"port": 3003,
"targetPort": 3003
},
{
"name": "3004",
"port": 3004,
"targetPort": 3004
},
{
"name": "3005",
"port": 3005,
"targetPort": 3005
},
{
"name": "8000",
"port": 8000,
"targetPort": 8000
},
{
"name": "9090",
"port": 9090,
"targetPort": 8080
},
{
"name": "9091",
"port": 9091,
"targetPort": 8081
},
{
"name": "49100",
"port": 49100,
"targetPort": 22
},
{
"name": "8001",
"port": 8001,
"targetPort": 8001
},
{
"name": "5000",
"port": 5000,
"targetPort": 5000
},
{
"name": "5001",
"port": 5001,
"targetPort": 5001
},
{
"name": "5002",
"port": 5002,
"targetPort": 5002
},
{
"name": "5003",
"port": 5003,
"targetPort": 5003
},
{
"name": "5004",
"port": 5004,
"targetPort": 5004
},
{
"name": "5005",
"port": 5005,
"targetPort": 5005
},
{
"name": "5006",
"port": 5006,
"targetPort": 5006
},
{
"name": "5007",
"port": 5007,
"targetPort": 5007
},
{
"name": "5008",
"port": 5008,
"targetPort": 5008
},
{
"name": "5009",
"port": 5009,
"targetPort": 5009
},
{
"name": "5010",
"port": 5010,
"targetPort": 5010
}
],
"selector": {
@@ -117,15 +227,90 @@
"name": "foo",
"image": "foobar",
"ports": [
{
"containerPort": 2345
},
{
"containerPort": 6379
},
{
"containerPort": 6379,
"protocol": "UDP"
},
{
"containerPort": 3000
},
{
"containerPort": 3001
},
{
"containerPort": 3002
},
{
"containerPort": 3003
},
{
"containerPort": 3004
},
{
"containerPort": 3005
},
{
"containerPort": 8000
},
{
"containerPort": 8080
},
{
"containerPort": 8081
},
{
"containerPort": 22
},
{
"containerPort": 8001,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5000,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5001,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5002,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5003,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5004,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5005,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5006,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5007,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5008,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5009,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5010,
"hostIP": "127.0.0.1"
}
],
"env": [
@@ -158,6 +343,9 @@
"creationTimestamp": null,
"labels": {
"io.kompose.service": "redis"
},
"annotations": {
"kompose.service.type": "loadbalancer"
}
},
"spec": {
@@ -172,6 +360,9 @@
"creationTimestamp": null,
"labels": {
"io.kompose.service": "redis"
},
"annotations": {
"kompose.service.type": "loadbalancer"
}
},
"spec": {
+196 -8
View File
@@ -15,11 +15,6 @@
},
"spec": {
"ports": [
{
"name": "2345",
"port": 2345,
"targetPort": 2345
},
{
"name": "6379",
"port": 6379,
@@ -30,6 +25,121 @@
"protocol": "UDP",
"port": 6379,
"targetPort": 6379
},
{
"name": "3000",
"port": 3000,
"targetPort": 3000
},
{
"name": "3000-tcp",
"port": 3000,
"targetPort": 3000
},
{
"name": "3001",
"port": 3001,
"targetPort": 3001
},
{
"name": "3002",
"port": 3002,
"targetPort": 3002
},
{
"name": "3003",
"port": 3003,
"targetPort": 3003
},
{
"name": "3004",
"port": 3004,
"targetPort": 3004
},
{
"name": "3005",
"port": 3005,
"targetPort": 3005
},
{
"name": "8000",
"port": 8000,
"targetPort": 8000
},
{
"name": "9090",
"port": 9090,
"targetPort": 8080
},
{
"name": "9091",
"port": 9091,
"targetPort": 8081
},
{
"name": "49100",
"port": 49100,
"targetPort": 22
},
{
"name": "8001",
"port": 8001,
"targetPort": 8001
},
{
"name": "5000",
"port": 5000,
"targetPort": 5000
},
{
"name": "5001",
"port": 5001,
"targetPort": 5001
},
{
"name": "5002",
"port": 5002,
"targetPort": 5002
},
{
"name": "5003",
"port": 5003,
"targetPort": 5003
},
{
"name": "5004",
"port": 5004,
"targetPort": 5004
},
{
"name": "5005",
"port": 5005,
"targetPort": 5005
},
{
"name": "5006",
"port": 5006,
"targetPort": 5006
},
{
"name": "5007",
"port": 5007,
"targetPort": 5007
},
{
"name": "5008",
"port": 5008,
"targetPort": 5008
},
{
"name": "5009",
"port": 5009,
"targetPort": 5009
},
{
"name": "5010",
"port": 5010,
"targetPort": 5010
}
],
"selector": {
@@ -117,15 +227,90 @@
"name": "foo",
"image": "foobar",
"ports": [
{
"containerPort": 2345
},
{
"containerPort": 6379
},
{
"containerPort": 6379,
"protocol": "UDP"
},
{
"containerPort": 3000
},
{
"containerPort": 3001
},
{
"containerPort": 3002
},
{
"containerPort": 3003
},
{
"containerPort": 3004
},
{
"containerPort": 3005
},
{
"containerPort": 8000
},
{
"containerPort": 8080
},
{
"containerPort": 8081
},
{
"containerPort": 22
},
{
"containerPort": 8001,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5000,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5001,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5002,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5003,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5004,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5005,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5006,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5007,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5008,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5009,
"hostIP": "127.0.0.1"
},
{
"containerPort": 5010,
"hostIP": "127.0.0.1"
}
],
"env": [
@@ -158,6 +343,9 @@
"creationTimestamp": null,
"labels": {
"io.kompose.service": "redis"
},
"annotations": {
"kompose.service.type": "loadbalancer"
}
},
"spec": {