Skip to content

How should BT support Docker? #2012

@jagthedrummer

Description

@jagthedrummer

People occasionally (frequently?) ask about using Docker with Bullet Train, but we don't currently have any official stance or support.

I think that when people ask about Docker that they don't always mean the same thing. I think they sometimes mean that they want to use Docker for one (or more) of:

  • Running just the BT starter repo in development mode
    • locally
    • in a cloud-based development environment
  • Running the BT starter repo and supporting services in development mode via Docker compose
    • locally
    • in a cloud-based development environment
  • CI/CD pipelines based on docker
  • Deploying a BT app to production (and other environments)
    • Heroku
    • Render
    • Fly
    • Kubernetes
    • Kamal
    • Etc...
  • Are there other ways that people want to use Docker?

I've used Docker enough to be able to use it when I have to, but it's not really a standard part of my go-to toolkit, so I don't have the best feel for how to navigate all of these various ways that people use Docker in these different situations.

So here are some possibly naive questions aimed at getting an idea of how we should approach Docker support:

  • Are there ways that people want to use Docker not listed above?
  • Can a single Dockerfile even theoretically cover all of the various use cases?
    • If so, would we have to do a bunch of conditionals that would end up making that Dockerfile pretty gnarly and hard to read?
  • Are there reasons that it would be better to have multiple Dockerfiles? Like Dockerfile.dev and Dockerfile.ci and Dockerfile.production (or Dockerfile.kamal or whatever).
  • Would using Docker compose to provide dependent services make a difference for what has to happen in the Dockerfile for the app?
  • Are there questions here that I don't even know to ask?

Some existing PRs that involve one or more Dockerfiles:

#1994 - Add Kamal to template repo

#1620 - Add Devcontainer Support

#464 - Dockerized development setup

#1720 - Update app setup to use docker for postgres/redis

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions