Is it possible to spin up docker-compose within a Docker container?

tansandotethPRO

8 months ago

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

0 Replies

tansandotethPRO

8 months ago

N/A


8 months ago

its not possible, the containers are not run with the needed privileges


tansandotethPRO

8 months ago

Got it! Any alternative suggestions?


tansandotethPRO

8 months ago

I'm borderline considering re-architecting the app so i can use railway cause i like railway so much


8 months ago

id need to know a lot more about what you are running before even attempting to come up with an alternative


8 months ago

it goes without saying but you will need to re-architect at least something


tansandotethPRO

8 months ago

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


8 months ago

let's assume railway did support docker compose, how does docker compose fit into that?


tansandotethPRO

8 months ago

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.


tansandotethPRO

8 months ago

The thin app is also dockerized for easier deployment


8 months ago

what is actually handing the JavaScript execution?


tansandotethPRO

8 months ago

nodejs


tansandotethPRO

8 months ago

the docker-compose will spin up a nodejs image


8 months ago

oh so just a simple FROM node type thing?


tansandotethPRO

8 months ago

yeh


tansandotethPRO

8 months ago

This to be exact node:14-alpine


8 months ago

that means it's okay for the code to have network access?


tansandotethPRO

8 months ago

Uh… I am not sure since I didn't write the original code, but lets assume its okay


8 months ago

and spinning up a service on railway, feeding it the source code and waiting for output would be too slow I assume?


tansandotethPRO

8 months ago

I dont mind that


tansandotethPRO

8 months ago

Not time sensitive especially at the current scale


8 months ago

you would need to create a new environment, a new service, upload code to it, and then wait for it's deployment logs


tansandotethPRO

8 months ago

For each job?


8 months ago

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


tansandotethPRO

8 months ago

I am assuming this suggestion means this would all be done from the API right?


8 months ago

exactly


8 months ago

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


8 months ago

though keep in mind we don't make any guarantees that the API is going to be unchanged for the foreseeable future


tansandotethPRO

8 months ago

Okay thanks! I'll take a closer look into the Railway API


8 months ago

awesome!


8 months ago

though I wonder if there are PAAS offerings that will run sandboxed code for you


tansandotethPRO

8 months ago

yeh i wonder too, but truthfully this was just poorly architected


tansandotethPRO

8 months ago

I'm just trying to not make huge changes and get it working


8 months ago

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


tansandotethPRO

8 months ago

thanks brody!


8 months ago

no problem!


Is it possible to spin up docker-compose within a Docker container? - Railway Help Station