GithubHelp home page GithubHelp logo

Comments (2)

josegonzalez avatar josegonzalez commented on September 28, 2024

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.

josegonzalez avatar josegonzalez commented on September 28, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.