GoogleContainerTools / GoogleContainerTools/skaffold
"Ports are not available" Windows 11 + WSL + Docker Desktop error
- Dominant language
- Go
- Stars
- 15.9k
- Forks
- 1.7k
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 10
Description
### Expected behavior
Running `skaffold dev` should start the stack
### Actual behavior
creating container in local docker: Error response from daemon: Ports are not available: exposing port TCP 127.0.0.1:9000 -> 0.0.0.0:0: listen tcp 127.0.0.1:9000: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
### Information
There is nothing running on port 9000, I have tried changing the ports to various random ports and the error continues.
There is the following errror: WARN[0000] failed to detect active kubernetes cluster node platform. Specify the correct build platform in the `skaffold.yaml` file or using the `--platform` flag subtask=-1 task=DevLoop
However in the skaffold.yml it is deploying via docker and not k8s
- Skaffold version: v2.1.0
- Operating system: Windows 11 - WSL
- Installed via: skaffold.dev curl
- Contents of skaffold.yaml:
```yaml
apiVersion: skaffold/v2beta29
kind: Config
build:
local:
push: false
useBuildkit: false
useDockerCLI: true
artifacts:
- image: trident-local-apiwg
context: local/api-gateway
sync:
infer:
- '*.js'
- image: hash-provider
context: .
docker:
dockerfile: functions/hash-provider/Dockerfile
cacheFrom:
- "hash-provider"
sync:
infer:
- 'services/hash/*.py'
- image: sample-provider
context: .
# requires:
# - image: provider-base
# alias: BASE_IMAGE
docker:
dockerfile: functions/sample-provider/Dockerfile
buildArgs:
ENV: development
sync:
infer:
- 'functions/sample-provider/provider/*.py'
- image: wattwatchers-provider
context: .
# requires:
# - image: provider-base
# alias: BASE_IMAGE
sync:
infer:
- 'functions/wattwatchers-provider/provider/*.py'
- 'shared/tridentpy/*.py'
docker:
dockerfile: functions/wattwatchers-provider/Dockerfile
buildArgs:
ENV: development
- image: egauge-provider
context: .
# requires:
# - image: provider-base
# alias: BASE_IMAGE
sync:
infer:
- 'functions/egauge-provider/provider/*.py'
- 'shared/tridentpy/*.py'
docker:
dockerfile: functions/egauge-provider/Dockerfile
buildArgs:
ENV: development
- image: solcast-provider
# requires:
# - image: provider-base
# alias: BASE_IMAGE
context: .
docker:
dockerfile: functions/solcast-provider/Dockerfile
buildArgs:
ENV: development
sync:
infer:
- 'functions/solcast-provider/src/*.ts'
- 'functions/solcast-provider/tsconfig.json'
- image: edgeconx-provider
# requires:
# - image: provider-base
# alias: BASE_IMAGE
context: .
docker:
dockerfile: functions/edgeconx-provider/Dockerfile
buildArgs:
ENV: development
sync:
infer:
- 'functions/edgeconx-provider/src/*.ts'
- 'functions/edgeconx-provider/tsconfig.json'
- image: http-provider
context: .
docker:
dockerfile: functions/http-provider/Dockerfile
buildArgs:
ENV: development
sync:
infer:
- functions/http-provider/src/*.ts
- functions/http-provider/tsconfig.json
- image: storage-provider
context: .
docker:
dockerfile: functions/storage-provider/Dockerfile
buildArgs:
ENV: development
GCP_CREDENTIALS_JSON_DEV: "{{.GCP_CREDENTIALS_JSON}}"
AWS_ACCESS_KEY_ID: "{{.AWS_ACCESS_KEY_ID}}"
AWS_SECRET_ACCESS_KEY: "{{.AWS_SECRET_ACCESS_KEY}}"
sync:
infer:
- 'functions/storage-provider/src/services/*.ts'
- 'functions/storage-provider/src/*.ts'
- functions/storage-provider/tsconfig.json
deploy:
docker:
useCompose: false
images: [ hash-provider, sample-provider, wattwatchers-provider, egauge-provider, solcast-provider, http-provider, storage-provider, edgeconx-provider, trident-local-apiwg]
portForward:
- resourceType: container
resourceName: trident-local-apiwg
port: 3000
localPort: 9000
```
Other logs:
Build runs fine but on the deploy I get:
```
Starting deploy...
DEBU[0016] container trident-local-apiwg already present in local daemon: using trident-local-apiwg-5 instead subtask=0 task=Deploy
DEBU[0016] found open port: 9000 subtask=-1 task=DevLoop
Cleaning up...
INFO[0016] Cleanup completed in 204.058741ms subtask=-1 task=DevLoop
DEBU[0016] Running command: [tput colors] subtask=-1 task=DevLoop
DEBU[0016] Command output: [256
] subtask=-1 task=DevLoop
creating container in local docker: Error response from daemon: Ports are not available: exposing port TCP 127.0.0.1:9000 -> 0.0.0.0:0: listen tcp 127.0.0.1:9000: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
Contributor guide
Assessment
This issue has not been assessed yet.