slim icon indicating copy to clipboard operation
slim copied to clipboard

new version 1.25.2 'using default probe' if --http-probe not set

Open khassel opened this issue 6 years ago • 6 comments

Previous Versions: If you run docker-slim build without param --http-probe this meant --http-probe=false as default as described in the README.

Now: If you run docker-slim build without param --http-probe

docker-slim[build]: info=http.probe message='using default probe'

a default-probe is used.

No real problem, but no backward compatibility. Everyone who wants no probe has now to add the param --http-probe=false

khassel avatar Jul 21 '19 21:07 khassel

It's a tricky problem... This change was meant for new users to avoid generating images that don't work. Let me see if there's a way to keep backward compatibility...

kcq avatar Jul 21 '19 21:07 kcq

as I mentioned no real problem, so update the docs and close this ...

docker-slim[build]: info=container name=dockerslimk_28_20190721210540 id=b6f62008b978772936538409fabf7fc06e1e68178307d4086b5fb9d9d78619f6 target.port.list=[] target.port.info=[] message='YOU CAN USE THESE PORTS TO INTERACT WITH THE CONTAINER'
docker-slim[build]: state=http.probe.error error='no exposed ports' message='expose your service port with --expose or disable HTTP probing with --http-probe=false if your containerized application doesnt expose any network services
docker-slim[build]: state=exited

idea (?): Don't throw an error if target.port.list=[] target.port.info=[] are empty

khassel avatar Jul 21 '19 21:07 khassel

For some application types/languages (e.g., ruby web services) not having ports to probe means the generated container will be broken... Making it more intelligent will help solve this long term (doing it only for images built from certain types of containers, for example... longer term DS will detect the open sockets inside the container).

kcq avatar Jul 22 '19 06:07 kcq

It would be pretty cool if it would enable http-probe if there are exposed ports. Of course assuming that a port is http is also not awesome. I think this needs more thought.

TJM avatar Dec 12 '19 19:12 TJM

@TJM the only gotcha there is the case where no explicit EXPOSE is defined in the Dockerfile... the only sure way to guess the intent is to detect the listening ports inside the target container and it's a feature that's on the todo list... any help with this will be appreciated :)

kcq avatar Dec 14 '19 07:12 kcq

If no exposed ports, don't probe anything, unless the command line options override. I would probably avoid detecting listening ports. If they dont EXPOSE it, they probably don't want it probed (wow, that sounds bad).

TJM avatar Dec 16 '19 17:12 TJM