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

a year 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

36 Replies

tansandoteth
PROOP

a year ago

N/A


a year ago

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


tansandoteth
PROOP

a year ago

Got it! Any alternative suggestions?


tansandoteth
PROOP

a year ago

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


a year ago

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


a year ago

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


tansandoteth
PROOP

a year 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


a year ago

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


tansandoteth
PROOP

a year 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.


tansandoteth
PROOP

a year ago

The thin app is also dockerized for easier deployment


a year ago

what is actually handing the JavaScript execution?


tansandoteth
PROOP

a year ago

nodejs


tansandoteth
PROOP

a year ago

the docker-compose will spin up a nodejs image


a year ago

oh so just a simple FROM node type thing?


tansandoteth
PROOP

a year ago

yeh


tansandoteth
PROOP

a year ago

This to be exact node:14-alpine


a year ago

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


tansandoteth
PROOP

a year ago

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


a year ago

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


tansandoteth
PROOP

a year ago

I dont mind that


tansandoteth
PROOP

a year ago

Not time sensitive especially at the current scale


a year ago

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


tansandoteth
PROOP

a year ago

For each job?


a year 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


tansandoteth
PROOP

a year ago

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


a year ago

exactly


a year 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


a year ago

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


tansandoteth
PROOP

a year ago

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


a year ago

awesome!


a year ago

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


tansandoteth
PROOP

a year ago

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


tansandoteth
PROOP

a year ago

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


a year 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


tansandoteth
PROOP

a year ago

thanks brody!


a year ago

no problem!


Loading...