Fly ssh console no longer has dependencies installed

Hi @idbentlye—you’re right, there were some changes to SSH recently to try to improve the user experience. One of the changes is to launch a login shell based on the shell configured in the image’s /etc/passwd by default—bash in your case.

Since your app is located in /app, I’m guessing that you’re using an older Dockerfile based on the fullstaq-ruby base image (see here for more details). The Ruby binaries in that image are located in a non-standard directory (e.g. /usr/lib/fullstaq-ruby/versions/3.1.2-jemalloc/bin/ruby). The Docker image sets the PATH to find them, but bash will apparently overwrite it when run as a login shell. I’m wondering if that’s what’s happening to you.

(Interestingly, it looks like the fullstaq-ruby image recently added a workaround for this, but not all the tags they provide have it.)

For now, my guess is that specifying the shell command manually like this will work:

fly ssh console --pty -C /bin/bash

This should avoid starting bash as a login shell, so it won’t reset the PATH.

In any case, thanks for reporting this!

1 Like