Skip to content

docs(docker): warn about macOS AirPlay 5000 conflict for MLflow port#97

Open
0xghost42 wants to merge 1 commit into
sentient-agi:mainfrom
0xghost42:fix/34-backend-port-env-var
Open

docs(docker): warn about macOS AirPlay 5000 conflict for MLflow port#97
0xghost42 wants to merge 1 commit into
sentient-agi:mainfrom
0xghost42:fix/34-backend-port-env-var

Conversation

@0xghost42
Copy link
Copy Markdown

Summary

Closes #34.

macOS Monterey and later bind 0.0.0.0:5000 for the AirPlay Receiver service. Running docker-up-full on a stock macOS host therefore fails with:

Ports are not available: exposing port TCP 0.0.0.0:5000 -> ...
bind: address already in use

The MLflow host port is already env-overridable (${MLFLOW_PORT:-5000} in docker-compose.yaml), but this collision is not documented anywhere the user encounters before running compose. The reporter in #34 (and at least two follow-ups in the comment thread) had to discover the .env knob on their own.

Change

Default port stays at 5000 for backwards compatibility — no behaviour change for users without AirPlay Receiver enabled. Add the caveat in the three discoverable places:

  • README.md: callout under Services Available right next to http://localhost:5000.
  • .env.example: a NOTE block above MLFLOW_TRACKING_URI explaining the collision and the recommended override (e.g. MLFLOW_PORT=5050).
  • docker-compose.yaml: a comment immediately above the mlflow ports: block so anyone reading the compose file sees the warning in context.

Verification

  • docker-compose -f docker-compose.yaml config parses cleanly.
  • No services renamed, no ports changed, no env var contracts broken.

Why not change the default

Changing the default away from 5000 would silently break users who have MLFLOW_TRACKING_URI=http://127.0.0.1:5000 in their existing .env (the value currently shipped in .env.example). Documenting + signposting the override is the lowest-risk fix that still cuts the reported friction.

Closes sentient-agi#34.

macOS Monterey and later bind 0.0.0.0:5000 for the AirPlay Receiver
service. Running 'docker-up-full' on a stock macOS host therefore
fails with

  Ports are not available: exposing port TCP 0.0.0.0:5000 -> ...
  bind: address already in use

The MLflow host port is already env-overridable
(${MLFLOW_PORT:-5000}), but the conflict was not documented anywhere
the user encounters before running compose. Several users (issue sentient-agi#34,
plus follow-ups) hit this and had to discover the .env knob on their
own.

This change keeps the default at 5000 for backwards compatibility and
adds the AirPlay caveat in three discoverable places:

- README.md: a callout under 'Services Available' next to the MLflow URL.
- .env.example: a NOTE block above MLFLOW_TRACKING_URI explaining the
  collision and the recommended override (e.g. MLFLOW_PORT=5050).
- docker-compose.yaml: a comment immediately above the mlflow ports
  mapping so anyone reading the compose file sees the warning in
  context.

No behaviour change; default port is unchanged. macOS users with
AirPlay Receiver enabled now have a clear escape hatch in every place
they would look.
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.

Airplay Receiver Port Conflict on MacOS

1 participant