Runway

Non-HTTP services, Non-Servers, Background Commands

Runway usually enforces that apps EXPOSE a port (and listen on that port).

That can be switched off via runway app route off (and switched back on via runway app route on).

Example

With the following Dockerfile in a git repository:

FROM alpine
RUN addgroup --gid 1001 mygroup && \
    adduser -D --ingroup mygroup --uid 1001 myuser
USER 1001:1001
CMD sleep infinity # or something a bit more useful, in practice

do

The app should then deploy and start.

As with any other app, runway app exec sh can be used to get an interactive shell on the container, if necessary.