Is it possible to spin up docker-compose within a Docker container?
I have a service that uses docker-compose to spin up sandboxed jobs to run. However, I noticed Railway doesn't support docker-compose, so I am unsure if I am just running into a wall here by trying to get this to run on Railway
27 Replies
Project ID:
N/A
N/A
its not possible, the containers are not run with the needed privileges
Got it! Any alternative suggestions?
I'm borderline considering re-architecting the app so i can use railway cause i like railway so much
id need to know a lot more about what you are running before even attempting to come up with an alternative
it goes without saying but you will need to re-architect at least something
It's mostly a bash script that runs JS tests that are pulled in from a trusted source, but I wanted it sandboxed in case of anything
let's assume railway did support docker compose, how does docker compose fit into that?
The thin app just spins up docker-compose and then runs the tests within that container. So the thin app will pull jobs then spin up a container for each one.
The thin app is also dockerized for easier deployment
what is actually handing the JavaScript execution?
nodejs
the docker-compose will spin up a nodejs image
oh so just a simple FROM node type thing?
yeh
This to be exact
node:14-alpine
that means it's okay for the code to have network access?
Uh... I am not sure since I didn't write the original code, but lets assume its okay
and spinning up a service on railway, feeding it the source code and waiting for output would be too slow I assume?
I dont mind that
Not time sensitive especially at the current scale
you would need to create a new environment, a new service, upload code to it, and then wait for it's deployment logs
For each job?
well I assumed you would want concurrency, but I guess you could keep a bunch around and reuse them, and then scale up if need be
I am assuming this suggestion means this would all be done from the API right?
exactly
wouldn't be too hard, do the things you need to do on the dashboard and then watch the networking tab for the API calls made
though keep in mind we don't make any guarantees that the API is going to be unchanged for the foreseeable future
Okay thanks! I'll take a closer look into the Railway API
awesome!
though I wonder if there are PAAS offerings that will run sandboxed code for you
yeh i wonder too, but truthfully this was just poorly architected
I'm just trying to not make huge changes and get it working
using some kind of paas that will run code for you is likely going to be to plug in than building it out on railway
thanks brody!
no problem!