R
Railway3mo ago
tansan

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
Percy
Percy3mo ago
Project ID: N/A
tansan
tansanOP3mo ago
N/A
Brody
Brody3mo ago
its not possible, the containers are not run with the needed privileges
tansan
tansanOP3mo ago
Got it! Any alternative suggestions? I'm borderline considering re-architecting the app so i can use railway cause i like railway so much
Brody
Brody3mo ago
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
tansan
tansanOP3mo 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
Brody
Brody3mo ago
let's assume railway did support docker compose, how does docker compose fit into that?
tansan
tansanOP3mo 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. The thin app is also dockerized for easier deployment
Brody
Brody3mo ago
what is actually handing the JavaScript execution?
tansan
tansanOP3mo ago
nodejs the docker-compose will spin up a nodejs image
Brody
Brody3mo ago
oh so just a simple FROM node type thing?
tansan
tansanOP3mo ago
yeh This to be exact node:14-alpine
Brody
Brody3mo ago
that means it's okay for the code to have network access?
tansan
tansanOP3mo ago
Uh... I am not sure since I didn't write the original code, but lets assume its okay
Brody
Brody3mo ago
and spinning up a service on railway, feeding it the source code and waiting for output would be too slow I assume?
tansan
tansanOP3mo ago
I dont mind that Not time sensitive especially at the current scale
Brody
Brody3mo ago
you would need to create a new environment, a new service, upload code to it, and then wait for it's deployment logs
tansan
tansanOP3mo ago
For each job?
Brody
Brody3mo 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
tansan
tansanOP3mo ago
I am assuming this suggestion means this would all be done from the API right?
Brody
Brody3mo ago
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
tansan
tansanOP3mo ago
Okay thanks! I'll take a closer look into the Railway API
Brody
Brody3mo ago
awesome! though I wonder if there are PAAS offerings that will run sandboxed code for you
tansan
tansanOP3mo ago
yeh i wonder too, but truthfully this was just poorly architected I'm just trying to not make huge changes and get it working
Brody
Brody3mo 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
tansan
tansanOP3mo ago
thanks brody!
Brody
Brody3mo ago
no problem!
Want results from more Discord servers?
Add your server