Rails on Docker · Fly

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. buildkit

    concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit

    Unfortunately this syntax is not generally supported yet - it's only supported with the buildkit backend and only landed in the 1.3 "labs" release. It was moved to stable in early 2022 (see https://github.com/moby/buildkit/issues/2574), so that seems to be better, but I think may still require a syntax directive to enable.

    Many other dockerfile build tools still don't support it, e.g. buildah (see https://github.com/containers/buildah/issues/3474)

    Useful now if you have control over the environment your images are being built in, but I'm excited to the future where it's commonplace!

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. I have my own local development Rails setup and template files that could be dropped in any project with minimal changes (mostly around configuring the db connection)

    - https://gitlab.com/sdwolfz/docker-projects/-/tree/master/rai...

    Haven't spent the time to document it. But the general idea is to have a `make` target that orchestrates everything so `docker-compose` can just spin things up.

    I've used this sort of thing for multiple types of projects, not just Rails, it can work with any framework granted you have the right docker images.

    For deployment I have something similar, builds upon the same concepts (with ansible instead of make, and focused on multi-server deploys, terraform for setting up the cloud resources), but not open sourced yet.

    Maybe I'll get to document it and post my own "Show HN" with this soon.

  4. mrsk

    Discontinued Deploy web apps anywhere. [Moved to: https://github.com/basecamp/kamal]

    This is long overdue. Rails got very nice updates in the past years to make it easier to handle JS and other assets.

    Deploying it was still always a hassle and involved searching for existing Dockerfiles and blog posts to cobble together a working one. At the beginning I always thought I'm doing something wrong as it's supposed to be easy and do everything nicely out of the box.

    Dhh apparently aggrees as there's now a default Dockerfile and also this project he's working on, this will make things a lot nicer and more polished: https://github.com/rails/mrsk

  5. bgems

    Binary rubygems

    One problem you're likely to run into is that systems using the same packaging lineage cut the same dependency up in different ways. The "right name" for a dependency can change between Ubuntu and Debian, between different releases of Ubuntu, and different architectures. It very quickly gets out of hand for any interesting set of dependencies. Now it might be that there's enough stability in the repositories these days that that's less true than it was, but I remember running into some really annoying cases at one point when I had a full gem mirror to play with.

    This is one of those problems that sounds easy but gets really fiddly. I had a quick run at it from a slightly different direction a looooong time ago: binary gems (https://github.com/regularfry/bgems although heaven knows if it even still runs). Precompiled binary gems would dramatically speed up installation at the cost of a) storage; and b) getting it right once. The script I cobbled together gathers the dependencies together into a `.Depends` file which you can just pipe through to the package manager, and could happily use to strap together a package corresponding to the dependency list.

    I've never really understood why a standard for precompiled gems never emerged, but it turns out it's drop-dead simple to implement. The script does some linker magic to reverse engineer the dpkg package dependency list from a compiled binary. I was quite pleased with it at the time, and while I don't think it's bullet-proof I do think it's worth having a poke at for ideas. Of course it can only detect binary dependencies, not data dependencies or anything more interesting, so there's still room for improvement.

  6. buildah

    A tool that facilitates building OCI images.

    Unfortunately this syntax is not generally supported yet - it's only supported with the buildkit backend and only landed in the 1.3 "labs" release. It was moved to stable in early 2022 (see https://github.com/moby/buildkit/issues/2574), so that seems to be better, but I think may still require a syntax directive to enable.

    Many other dockerfile build tools still don't support it, e.g. buildah (see https://github.com/containers/buildah/issues/3474)

    Useful now if you have control over the environment your images are being built in, but I'm excited to the future where it's commonplace!

  7. dockerfile-rails

    Provides a Rails generator to produce Dockerfiles and related files.

    At the moment Rails is focused on simplicity/readability. I've got a gem that I'm proposing (and DHH is evaluating) that adds caching as an option: https://github.com/rubys/dockerfile-rails#overview

  8. dinker

    Dinker, dinky Docker images

    Self hoisting here, I put this together to make it easier to generate single (extra) layer docker images without needing a docker agent, capabilities, chroot, etc: https://github.com/andrewbaxter/dinker

    Caveat: it doesn't work on Fly.io. They seem to be having some issue with OCI manifests: https://github.com/containers/skopeo/issues/1881 . They're also having issues with new docker versions pushing from CI: https://community.fly.io/t/deploying-to-fly-via-github-actio... ... the timing of this post seems weird.

    FWIW the article says

    > create a Docker image, also known as an OCI image

    I don't think this is quite right. From my investigation, Docker and OCI images are basically content addressed trees, starting with a root manifest that points to other files and their hashes (root -> images -> layers -> layer configs + files). The OCI manifests and configs are separate to Docker manifests and configs and basically Docker will support both side by side.

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. skopeo

    Work with remote images registries - retrieving information, images, signing content

    Self hoisting here, I put this together to make it easier to generate single (extra) layer docker images without needing a docker agent, capabilities, chroot, etc: https://github.com/andrewbaxter/dinker

    Caveat: it doesn't work on Fly.io. They seem to be having some issue with OCI manifests: https://github.com/containers/skopeo/issues/1881 . They're also having issues with new docker versions pushing from CI: https://community.fly.io/t/deploying-to-fly-via-github-actio... ... the timing of this post seems weird.

    FWIW the article says

    > create a Docker image, also known as an OCI image

    I don't think this is quite right. From my investigation, Docker and OCI images are basically content addressed trees, starting with a root manifest that points to other files and their hashes (root -> images -> layers -> layer configs + files). The OCI manifests and configs are separate to Docker manifests and configs and basically Docker will support both side by side.

  11. cruftspy

    Detect unnecessary files in Docker images

    If you want to check your images for some common leftover files in all the layers, I made an app for that: https://github.com/viraptor/cruftspy

  12. lamby

    🐑🛤 Simple Rails & AWS Lambda Integration

    (I have not actually used this myself). The folks over at CustomInk maintain Lamby, a project to run Rails in a quickly-bootable Lambda environment. Might be worth checking out, if you otherwise do enjoy working with Rails: https://lamby.custominktech.com

  13. docker-rails-example

    A production ready example Rails app that's using Docker and Docker Compose.

    If anyone is looking for a more complete guide I put together this a while back: https://nickjanetakis.com/blog/a-guide-for-running-rails-in-...

    The post also includes a ~1h hour ad-free YouTube video. It includes running Rails and also Sidekiq, Postgres, Redis, Action Cable and ties in esbuild and Tailwind too. It's all managed by Docker Compose.

    The example app is open source at https://github.com/nickjj/docker-rails-example and it's optimized for both development and production. No strings attached.

  14. webpack

    A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.

    I'm not gonna lie, I didn't read all that, but the node example alone proves you either didn't read the guy you replied to or haven't been coding long enough to grok the problem.

    What if you want to start a new project using the latest postgres version because postgres has a new feature that will be handy, but you already maintain another project that uses a postgres feature or relies on behaviour that was removed/changed in the latest version? You're going to set up a whole new VM on the internet to be a staging environment and instead of setting up a testing and deployment pipeline you're going to just FTP / remote-ssh into it and change live code?

    you define an apps entire chain of dependencies in a compose file / set of kube manifests / terraform config for ecs. Then in the container definition itself you lock down things like C library and distro versions: maybe you use specially patched imagemagick on one project or a pdf generator on another, and fontconfig defaults were updated and it changed how aliasing works between distro releases and now your fonts are all fugly in generated exports...

    nevermind this, check out this thread to destroy your illusion that simply having node installed locally will make your next project super future proof https://github.com/webpack/webpack/issues/14532

    if you respond please do not open with "yeah but rust", I can still compile Fortran code too

  15. awesome-compose

    Awesome Docker Compose samples

    DB data can be stored in volume and persisted.

    There are a lot of dockerfile / compose examples on github.

    * https://github.com/docker/awesome-compose

  16. dockerfiles

    Various Dockerfiles I use on the desktop and on servers.

  17. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Container Nursery & Lazytainer

    2 projects | /r/selfhosted | 27 Aug 2022
  • Colima: Container runtimes on macOS (and Linux) with minimal setup

    1 project | news.ycombinator.com | 18 May 2025
  • Vagrant on Apple Silicon M4: KVM vs QEMU vs Libvirt – What Works Best?

    2 projects | dev.to | 23 Apr 2025
  • Colima: Container runtimes on macOS (and Linux) with minimal setup

    1 project | news.ycombinator.com | 19 Apr 2025
  • Quadlet: Running Podman containers under systemd

    12 projects | news.ycombinator.com | 23 Mar 2025