Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

emailservice: remove explicit PORT env variable #254

Merged
merged 2 commits into from
Aug 3, 2022
Merged

emailservice: remove explicit PORT env variable #254

merged 2 commits into from
Aug 3, 2022

Conversation

ahayworth
Copy link
Contributor

Changes

This is a follow-up to #248, which in turn was resolving: #242 (comment)

The ruby app is relying on convention, and by convention a PORT env
varable will determine which port the puma webserver actually listens
on. So - we don't need to set it explicitly in the compose file, but
that means we need to set it elsewhere somehow.

I tried a few hacks with the dockerfile:

  • Trying to pass PORT=$EMAIL_SERVICE_PORT
  • Trying to pass -p $EMAIL_SERVICE_PORT in the command

But those didn't work and I gave up. So instead we just set it directly
in the sinatra app ourselves. (Please don't ask me how that actually
gets set down all the way through sinatra -> rack -> puma, because
truthfully I do not know: rack-based servers are basically magic).

We can see that it works:

@ahayworth ➜ /workspaces/opentelemetry-demo-webstore (ahayworth/emailservice-port-things ✗) $ git grep EMAIL_SERVICE_P
ORT
.env:EMAIL_SERVICE_PORT=6060
@ahayworth ➜ /workspaces/opentelemetry-demo-webstore (ahayworth/emailservice-port-things ✗) $ docker-compose up --build emailservice
email-service            | == Sinatra (v2.2.0) has taken the stage on 6060 for production with backup from Puma
email-service            | I, [2022-08-03T13:08:27.643291 #1]  INFO -- : Instrumentation: OpenTelemetry::Instrumentation::Sinatra was successfully installed with the following options {}
email-service            | Puma starting in single mode...
email-service            | * Puma version: 5.6.4 (ruby 3.1.2-p20) ("Birdie's Version")
email-service            | *  Min threads: 0
email-service            | *  Max threads: 5
email-service            | *  Environment: production
email-service            | *          PID: 1
email-service            | * Listening on http://0.0.0.0:6060
email-service            | Use Ctrl-C to stop

cc @mic-max

This is a follow-up to #248, which in turn was resolving: #242 (comment)

The ruby app is relying on convention, and by convention a `PORT` env
varable will determine which port the `puma` webserver actually listens
on. So - we don't need to set it explicitly in the compose file, but
that means we need to set it elsewhere somehow.

I tried a few hacks with the dockerfile:
- Trying to pass `PORT=$EMAIL_SERVICE_PORT`
- Trying to pass `-p $EMAIL_SERVICE_PORT` in the command

But those didn't work and I gave up. So instead we just set it directly
in the sinatra app ourselves. (Please don't ask me how that actually
gets set down all the way through sinatra -> rack -> puma, because
truthfully I do not know: rack-based servers are basically magic).

We can see that it works:

```
@ahayworth ➜ /workspaces/opentelemetry-demo-webstore (ahayworth/emailservice-port-things ✗) $ git grep EMAIL_SERVICE_P
ORT
.env:EMAIL_SERVICE_PORT=6060
```

```
@ahayworth ➜ /workspaces/opentelemetry-demo-webstore (ahayworth/emailservice-port-things ✗) $ docker-compose up --build emailservice
email-service            | == Sinatra (v2.2.0) has taken the stage on 6060 for production with backup from Puma
email-service            | I, [2022-08-03T13:08:27.643291 #1]  INFO -- : Instrumentation: OpenTelemetry::Instrumentation::Sinatra was successfully installed with the following options {}
email-service            | Puma starting in single mode...
email-service            | * Puma version: 5.6.4 (ruby 3.1.2-p20) ("Birdie's Version")
email-service            | *  Min threads: 0
email-service            | *  Max threads: 5
email-service            | *  Environment: production
email-service            | *          PID: 1
email-service            | * Listening on http://0.0.0.0:6060
email-service            | Use Ctrl-C to stop
```
@ahayworth ahayworth requested a review from a team August 3, 2022 13:17
Copy link
Contributor

@mic-max mic-max left a comment

Choose a reason for hiding this comment

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

Thanks!

@cartersocha cartersocha merged commit 7c9c07f into open-telemetry:main Aug 3, 2022
jmichalak9 pushed a commit to jmichalak9/opentelemetry-demo that referenced this pull request Mar 22, 2024
This is a follow-up to open-telemetry#248, which in turn was resolving: open-telemetry#242 (comment)

The ruby app is relying on convention, and by convention a `PORT` env
varable will determine which port the `puma` webserver actually listens
on. So - we don't need to set it explicitly in the compose file, but
that means we need to set it elsewhere somehow.

I tried a few hacks with the dockerfile:
- Trying to pass `PORT=$EMAIL_SERVICE_PORT`
- Trying to pass `-p $EMAIL_SERVICE_PORT` in the command

But those didn't work and I gave up. So instead we just set it directly
in the sinatra app ourselves. (Please don't ask me how that actually
gets set down all the way through sinatra -> rack -> puma, because
truthfully I do not know: rack-based servers are basically magic).

We can see that it works:

```
@ahayworth ➜ /workspaces/opentelemetry-demo-webstore (ahayworth/emailservice-port-things ✗) $ git grep EMAIL_SERVICE_P
ORT
.env:EMAIL_SERVICE_PORT=6060
```

```
@ahayworth ➜ /workspaces/opentelemetry-demo-webstore (ahayworth/emailservice-port-things ✗) $ docker-compose up --build emailservice
email-service            | == Sinatra (v2.2.0) has taken the stage on 6060 for production with backup from Puma
email-service            | I, [2022-08-03T13:08:27.643291 open-telemetry#1]  INFO -- : Instrumentation: OpenTelemetry::Instrumentation::Sinatra was successfully installed with the following options {}
email-service            | Puma starting in single mode...
email-service            | * Puma version: 5.6.4 (ruby 3.1.2-p20) ("Birdie's Version")
email-service            | *  Min threads: 0
email-service            | *  Max threads: 5
email-service            | *  Environment: production
email-service            | *          PID: 1
email-service            | * Listening on http://0.0.0.0:6060
email-service            | Use Ctrl-C to stop
```

Co-authored-by: Carter Socha <[email protected]>
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.

5 participants