Skip to content

Conversation

kvdb-surf
Copy link

Found out I had some in use ports, this might be helpful to others starting out as well.

Extracted the needed ports from docker-compose.yml using:

yq -r '.services[]?.ports[]? // empty' docker-compose.yml | \
  grep ':' | \
  sed -E 's/^"?([0-9]+):[0-9]+.*"?$/\1/' | \
  sort -n | uniq

Found out I had some in use ports, this might be helpful to
others starting out as well.

Extracted the needed ports from docker-compose.yml using:

```
yq -r '.services[]?.ports[]? // empty' docker-compose.yml | \
  grep ':' | \
  sed -E 's/^"?([0-9]+):[0-9]+.*"?$/\1/' | \
  sort -n | uniq
```
Comment on lines +94 to +99
The environment requires several ports to be free.
Use `ss` to check if any are in use—no output means they're available:

```
ss -tulnp|grep -E ':80|:3000|:4000|:5432|:5678|:8000|:8001|:8080'
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is ss? It doesn't seem to be a default tool on macos, ubuntu or alpine.

It is a good idea to inform people to check that the ports are free, but the actual numbers written out here are bound to go stale over time. What do you think about rephrasing this to something along the lines off "Make sure you aren't running any software on the ports required by docker-compose.yml" ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ss is one of the tools in https://en.wikipedia.org/wiki/Iproute2. I reasoned that's a pretty standard tool. I couldn't find something similar that's available on both macos and ubuntu. Anything older you'd prefer, like netstat or lsof maybe?

I thought about including the script mentioned in the commit message, but for an onboarding tutorial, a bit too verbose, although then always current.
I'll apply your rephrase if we can settle on a tool.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, didn't know netstat was considered legacy :) I typically use netstat on OSX, but fine to keep ss in this text, maybe with a link to that iproute2 page

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Mark90 @kvdb-surf What should we do with this PR?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps my 2 suggestions make it work for all

Use `ss` to check if any are in use—no output means they're available:

```
ss -tulnp|grep -E ':80|:3000|:4000|:5432|:5678|:8000|:8001|:8080'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ss -tulnp|grep -E ':80|:3000|:4000|:5432|:5678|:8000|:8001|:8080'
netstat -tulnp | grep -E ':80|:3000|:4000|:5432|:5678|:8000|:8001|:8080'
ss -tulnp|grep -E ':80|:3000|:4000|:5432|:5678|:8000|:8001|:8080'

### Local environment

The environment requires several ports to be free.
Use `ss` to check if any are in use—no output means they're available:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Use `ss` to check if any are in use—no output means they're available:
Use either command below to check if any are in use. No output means they're available:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants