Comments (2)
The "issue" here is that apps are generally built by whatever builder you designate - heroku buildpacks, dockerfile, nixpacks, CNB, lambda, whatever. Each builder has - for better or worse - a "working directory" that we change to in order to build your app. That is what the build-dir
is - its the build context.
Many monorepos are something like a python app and a node app in the same repo, not sharing configs. Those are easy to do a monorepo for - just change the build-dir
context and you're done. Thats what I built the existing support for - cases where you might have a Procfile for one "app" and a different one for another (or whatever other files you can think of). Changing the build-dir
also allows for more complex cases, but its basically changing the initial working directory for your app.
If we want to change the build-dir but keep all other files, the builder needs to be aware of that. In other words, if you're using Heroku Buildpacks via Herokuish, the buildpack you use would need to have a way for us to say "here is the codebase but change the directory for X steps" where X
steps might be stuff like "only dependency installation" or "only whatever compiles the app". I don't think thats tenable since... we don't control buildpacks or anything like that. Thats also the case for every other builder (other than the lambda ones, but honestly I don't really think this should apply there since lambda functions tend to be small units of code that don't share dependencies within a given repo).
Taking a step back, if I wanted to start your app today, what would that process look like? I clone your repo and then.... how do I get everything compiled and all processes running? There's probably a world here where you can implement this with a Dockerfile + some extra env vars, but maybe there is a way to do this without that?
Note that the Dokku project strives to be a good copy of Heroku - it gives a great baseline experience - so if its possible there, it should be possible here.
from dokku.
It's been a couple weeks without follow-up. Happy to improve things here, but its not clear that there is a good way forward without more feedback.
Feel free to comment and we'll try and come up with something that works :)
from dokku.
Related Issues (20)
- Getting error when upgrading dokku HOT 7
- Fix grammar on HSTS docs
- Manual steps when upgrading dokku ? HOT 15
- Support for Whats Up Docker HOT 5
- How to change GIT file size limit HOT 6
- Disk space usage: Disk when full many deployments in same day HOT 1
- Build fail ( gliderlabs/herokuish:latest ) HOT 6
- Deploy fails "listening on ports" healthcheck HOT 6
- dokku.prerm will loop forever in ps_backtrace() because $ppid == 0 HOT 2
- Nginx: runsv not running HOT 7
- dokku domain:set error: [sudo] password for dokku HOT 2
- Adding app name to `dokku apps:report` HOT 5
- network:info does not appear to do anything HOT 1
- Heroku-compatible `app.json` `buildpacks` specification HOT 2
- The current version (0.34.9 )of the documentation has not been released yet HOT 1
- Unable connect to a Dokku Go API for my Netlify-deployed frontend: ERR_CONNECTION_REFUSED / (blocked:mixed-content)
- support `pack` bindings HOT 4
- Docs link is raising a 403 error HOT 2
- Add ability to pause/restart cron jobs HOT 6
- Deploy PHP7.4 application
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dokku.