Private service fails to deploy with no feedback: "Exited with status 128"

I’m trying to deploy a private service but it fails:

Although the deploy shows that all is fine:

But the logging shows absolutely nothing:

I’m just trying to deploy a fluent-bit service, the relevant part of the blueprint looks like this:

And the Dockerfile just looks like this (because Render doesn’t support directly running an image)

Furthermore this is run as part of a Preview Environment (PR #7). Also I’ve tested the fluent-bit configuration locally using Docker compose and it listens for incoming tcp traffic and works fine.

Please provide guidance on how to debug this

Hi there,

Thanks for reaching out.

I think the issue may be with the dockerCommand set in the Blueprint. The Docker Command in a service notes:

Add an optional command to override the Docker CMD for this service. This will also override the ENTRYPOINT if defined in your Dockerfile.

As it’s overriding the CMD and ENTRYPOINT, the command you’ve set in the screenshot doesn’t appear to run anything? Maybe it needs to be prefixed with /fluent-bit/bin/fluent-bit as shown in the original image?

Hope that helps

Alan

Adding the /fluent-bit/bin/fluent-bit explicitly in the render.yaml indeed causes it to now launch. So thank you for the help, but I want to mention that this does illustrate some shortcomings with the platform:

  1. It should pass errors from the docker daemon back to the developer so he/she can debug the issue themselves. Instead of showing an opaque “Exited with status 128”
  2. The behaviour of needing to provide the executable explicitly in this situation diverges from the behaviour of how docker handles it. i.e: docker run <the_image> -i tcp -o stdout works just fine. As does docker compose

Thanks for the update and glad to hear you got it working.

Also thank you for the feedback:

  1. I agree, and we’re always working to improve logging to help customers self-diagnose/resolve.

  2. The Render dockerCommand is noted as overriding both CMD & ENTRYPOINT, so a fully-formed command would be required. The majority of Render Docker configurations I come across are done at the environment level (vars or secret files), then the optional dockerCommand doesn’t need to be set at all, using the CMD/ENTRYPOINT as set in the image. I’m not familiar with Fluent Bit, so I’m not sure if that style of configuration is possible, but I will pass on your feedback here.

Kind regards

Alan

Thank you for the explanation. You say it is “noted” but I can’t find it in the documentation here Deploy Docker — How to Use Docker | Render or here Blueprint Specification | Render? Maybe I’m missing part of the documentation that explains it?

In any case, it is surprising in my opinion so it might we worth mentioning it explicitly in either of those places.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.