GoogleContainerTools / GoogleContainerTools/skaffold

"Ports are not available" Windows 11 + WSL + Docker Desktop error

Open
#8,374 5 comments 0 reactions 0 assignees View on GitHub
area/portforward kind/bug platform/windows priority/p3
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.