Jelle Huibregtse
Jelle Huibregtse

Reputation: 69

Java Spring Boot Random Port with Dockerfile

If you're using Java Spring Boot, you can set the server port the application runs on to any port, but also to a random port:

server:
  port: 0

However, when I now use a Dockerfile for my application, I won't know what port to EXPOSE. Is there any way to find this port?

Upvotes: 2

Views: 1079

Answers (2)

Jamie Bisotti
Jamie Bisotti

Reputation: 2685

  1. Don't use a random port for the Spring app. Use the default port and have Docker expose that as whatever port you like.
  2. Don't use a random port for the Spring app. Specify it via an environment variable and have Docker provide that.

Upvotes: 3

travellerguy
travellerguy

Reputation: 1

when you started an app, you can see at console I think. As I know docker use 8080 or 8081.

EDIT 1: Check this -> link

You can expose a port through your Dockerfile or use --expose and then publish it with the -P flag. This will bind the exposed port to your Docker host on a random port (verified by running docker container ls).

You can expose a port through your Dockerfile or use --expose and then publish it with the -p 80:80 flag. This will bind the exposed port to your Docker host on port 80, and it expects the exposed port is 80 too (adjust as necessary with HOST:CONTAINER).

You can ignore exposing anything and just use -p 80:80 in which case this doubles as both exposing AND publishing the port.

Upvotes: 0

Related Questions