dockerfile-rails 1.6.25 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +1 -0
 - data/lib/generators/dockerfile_generator.rb +81 -27
 - data/lib/generators/templates/Dockerfile.erb +24 -12
 - data/lib/generators/templates/docker-entrypoint.erb +10 -6
 - data/lib/generators/templates/dockerignore.erb +16 -2
 - data/lib/generators/templates/litestream.rake.erb +55 -0
 - metadata +4 -7
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: fcfaafd6fd11a3363f54dded17edd09285980dea47ee23020527cc0c4c924275
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c1b2f8f02fb35ce0e1958fe1b72392cd060532609fd9f00c355dbce3a206b145
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 02ea8f1cd74713c24d45b7570833ee48f7795023f1e6b22335909414940c260e327eac06772fdb1d655b6053b0e841ec4bc117ee748c02fd4afe40340a0a13bb
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f823e819cdf9dfa86ff97e7c5c7c3e9d6617ae0ecddc639e96ecf035b4112749490890f187bee33c8b94f0cb8d22551c6dd270c58b000fed947d7ebac431ad94
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -67,6 +67,7 @@ are actually using.  But should you be using DATABASE_URL, for example, at runti 
     | 
|
| 
       67 
67 
     | 
    
         
             
            additional support may be needed:
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
            * `--litefs` - use [LiteFS](https://fly.io/docs/litefs/)
         
     | 
| 
      
 70 
     | 
    
         
            +
            * `--litestream` - use [LiteFS](https://litestream.io/)
         
     | 
| 
       70 
71 
     | 
    
         
             
            * `--mysql` - add mysql libraries
         
     | 
| 
       71 
72 
     | 
    
         
             
            * `--postgresql` - add postgresql libraries
         
     | 
| 
       72 
73 
     | 
    
         
             
            * `--redis` - add redis libraries
         
     | 
| 
         @@ -2,6 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            require "erb"
         
     | 
| 
       4 
4 
     | 
    
         
             
            require "json"
         
     | 
| 
      
 5 
     | 
    
         
            +
            require "shellwords"
         
     | 
| 
       5 
6 
     | 
    
         
             
            require_relative "../dockerfile-rails/scanner.rb"
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
            class DockerfileGenerator < Rails::Generators::Base
         
     | 
| 
         @@ -15,10 +16,11 @@ class DockerfileGenerator < Rails::Generators::Base 
     | 
|
| 
       15 
16 
     | 
    
         
             
                "compose" => false,
         
     | 
| 
       16 
17 
     | 
    
         
             
                "fullstaq" => false,
         
     | 
| 
       17 
18 
     | 
    
         
             
                "gemfile-updates" => true,
         
     | 
| 
       18 
     | 
    
         
            -
                "jemalloc" =>  
     | 
| 
      
 19 
     | 
    
         
            +
                "jemalloc" => true,
         
     | 
| 
       19 
20 
     | 
    
         
             
                "label" => {},
         
     | 
| 
       20 
21 
     | 
    
         
             
                "link" => false,
         
     | 
| 
       21 
22 
     | 
    
         
             
                "litefs" => false,
         
     | 
| 
      
 23 
     | 
    
         
            +
                "litestream" => false,
         
     | 
| 
       22 
24 
     | 
    
         
             
                "lock" => true,
         
     | 
| 
       23 
25 
     | 
    
         
             
                "max-idle" => nil,
         
     | 
| 
       24 
26 
     | 
    
         
             
                "migrate" => "",
         
     | 
| 
         @@ -71,10 +73,12 @@ class DockerfileGenerator < Rails::Generators::Base 
     | 
|
| 
       71 
73 
     | 
    
         
             
                "libtiff-dev" => "tiff-dev",
         
     | 
| 
       72 
74 
     | 
    
         
             
                "libjemalloc2" => "jemalloc",
         
     | 
| 
       73 
75 
     | 
    
         
             
                "libvips" => "vips-dev",
         
     | 
| 
      
 76 
     | 
    
         
            +
                "libyaml-dev" => "yaml-dev",
         
     | 
| 
       74 
77 
     | 
    
         
             
                "node-gyp" => "gyp",
         
     | 
| 
       75 
78 
     | 
    
         
             
                "pkg-config" => "pkgconfig",
         
     | 
| 
       76 
79 
     | 
    
         
             
                "python" => "python3",
         
     | 
| 
       77 
     | 
    
         
            -
                "python-is-python3" => "python3"
         
     | 
| 
      
 80 
     | 
    
         
            +
                "python-is-python3" => "python3",
         
     | 
| 
      
 81 
     | 
    
         
            +
                "sqlite3" => "sqlite",
         
     | 
| 
       78 
82 
     | 
    
         
             
              }
         
     | 
| 
       79 
83 
     | 
    
         | 
| 
       80 
84 
     | 
    
         
             
              # load defaults from config file
         
     | 
| 
         @@ -162,6 +166,9 @@ class DockerfileGenerator < Rails::Generators::Base 
     | 
|
| 
       162 
166 
     | 
    
         
             
              class_option :litefs, type: :boolean, default: OPTION_DEFAULTS.litefs,
         
     | 
| 
       163 
167 
     | 
    
         
             
                desc: "replicate sqlite3 databases using litefs"
         
     | 
| 
       164 
168 
     | 
    
         | 
| 
      
 169 
     | 
    
         
            +
              class_option :litestream, type: :boolean, default: OPTION_DEFAULTS.litestream,
         
     | 
| 
      
 170 
     | 
    
         
            +
                desc: "replicate sqlite3 databases using litesream"
         
     | 
| 
      
 171 
     | 
    
         
            +
             
     | 
| 
       165 
172 
     | 
    
         
             
              class_option :tigris, type: :boolean, default: OPTION_DEFAULTS.tigris,
         
     | 
| 
       166 
173 
     | 
    
         
             
                desc: "configure active storage to use tigris"
         
     | 
| 
       167 
174 
     | 
    
         | 
| 
         @@ -346,6 +353,10 @@ class DockerfileGenerator < Rails::Generators::Base 
     | 
|
| 
       346 
353 
     | 
    
         
             
                  fly_attach_consul
         
     | 
| 
       347 
354 
     | 
    
         
             
                end
         
     | 
| 
       348 
355 
     | 
    
         | 
| 
      
 356 
     | 
    
         
            +
                if using_litestream?
         
     | 
| 
      
 357 
     | 
    
         
            +
                  template "litestream.rake.erb", "lib/tasks/litestream.rake"
         
     | 
| 
      
 358 
     | 
    
         
            +
                end
         
     | 
| 
      
 359 
     | 
    
         
            +
             
     | 
| 
       349 
360 
     | 
    
         
             
                if File.exist?("fly.toml") && (fly_processes || !options.prepare || options.swap || deploy_database == "sqlite3")
         
     | 
| 
       350 
361 
     | 
    
         
             
                  if File.stat("fly.toml").size > 0
         
     | 
| 
       351 
362 
     | 
    
         
             
                    template "fly.toml.erb", "fly.toml"
         
     | 
| 
         @@ -488,6 +499,10 @@ private 
     | 
|
| 
       488 
499 
     | 
    
         
             
                @gemfile.include?("litestack")
         
     | 
| 
       489 
500 
     | 
    
         
             
              end
         
     | 
| 
       490 
501 
     | 
    
         | 
| 
      
 502 
     | 
    
         
            +
              def using_litestream?
         
     | 
| 
      
 503 
     | 
    
         
            +
                options.litestream?
         
     | 
| 
      
 504 
     | 
    
         
            +
              end
         
     | 
| 
      
 505 
     | 
    
         
            +
             
     | 
| 
       491 
506 
     | 
    
         
             
              def using_node?
         
     | 
| 
       492 
507 
     | 
    
         
             
                return @using_node if @using_node != nil
         
     | 
| 
       493 
508 
     | 
    
         
             
                return if using_bun?
         
     | 
| 
         @@ -594,6 +609,10 @@ private 
     | 
|
| 
       594 
609 
     | 
    
         
             
                  system "bundle add mysql2 --skip-install" unless has_mysql_gem?
         
     | 
| 
       595 
610 
     | 
    
         
             
                end
         
     | 
| 
       596 
611 
     | 
    
         | 
| 
      
 612 
     | 
    
         
            +
                if options.litestream?
         
     | 
| 
      
 613 
     | 
    
         
            +
                  system "bundle add litestream --skip-install" unless @gemfile.include? "litestream"
         
     | 
| 
      
 614 
     | 
    
         
            +
                end
         
     | 
| 
      
 615 
     | 
    
         
            +
             
     | 
| 
       597 
616 
     | 
    
         
             
                if options.redis? || using_redis?
         
     | 
| 
       598 
617 
     | 
    
         
             
                  system "bundle add redis --skip-install" unless @gemfile.include? "redis"
         
     | 
| 
       599 
618 
     | 
    
         
             
                end
         
     | 
| 
         @@ -662,19 +681,30 @@ private 
     | 
|
| 
       662 
681 
     | 
    
         
             
              end
         
     | 
| 
       663 
682 
     | 
    
         | 
| 
       664 
683 
     | 
    
         
             
              def base_packages
         
     | 
| 
       665 
     | 
    
         
            -
                packages =  
     | 
| 
      
 684 
     | 
    
         
            +
                packages = %w(curl) # work with the default healthcheck strategy in Kamal
         
     | 
| 
       666 
685 
     | 
    
         
             
                packages += @@packages["base"] if @@packages["base"]
         
     | 
| 
       667 
686 
     | 
    
         | 
| 
      
 687 
     | 
    
         
            +
                packages << "libjemalloc2" if options.jemalloc? && !options.fullstaq?
         
     | 
| 
      
 688 
     | 
    
         
            +
             
     | 
| 
      
 689 
     | 
    
         
            +
                # start with databases: sqlite3, postgres, mysql
         
     | 
| 
      
 690 
     | 
    
         
            +
                packages << "postgresql-client" if options.postgresql? || @postgresql
         
     | 
| 
      
 691 
     | 
    
         
            +
                packages << "default-mysql-client" if options.mysql? || @mysql
         
     | 
| 
      
 692 
     | 
    
         
            +
                packages << "freetds-bin" if options.sqlserver? || @sqlserver
         
     | 
| 
      
 693 
     | 
    
         
            +
                if options.sqlite3? || @sqlite3
         
     | 
| 
      
 694 
     | 
    
         
            +
                  packages << "sqlite3" unless packages.include? "sqlite3"
         
     | 
| 
      
 695 
     | 
    
         
            +
                end
         
     | 
| 
      
 696 
     | 
    
         
            +
             
     | 
| 
      
 697 
     | 
    
         
            +
                # ActiveStorage preview support
         
     | 
| 
      
 698 
     | 
    
         
            +
                packages << "libvips" if @gemfile.include? "ruby-vips"
         
     | 
| 
      
 699 
     | 
    
         
            +
             
     | 
| 
       668 
700 
     | 
    
         
             
                if using_execjs?
         
     | 
| 
       669 
701 
     | 
    
         
             
                  if node_version == "lts"
         
     | 
| 
       670 
702 
     | 
    
         
             
                    packages += %w(nodejs npm)
         
     | 
| 
       671 
     | 
    
         
            -
                  else
         
     | 
| 
       672 
     | 
    
         
            -
                    packages += %w(curl)
         
     | 
| 
       673 
703 
     | 
    
         
             
                  end
         
     | 
| 
       674 
704 
     | 
    
         
             
                end
         
     | 
| 
       675 
705 
     | 
    
         | 
| 
       676 
706 
     | 
    
         
             
                if using_puppeteer?
         
     | 
| 
       677 
     | 
    
         
            -
                  packages += %w( 
     | 
| 
      
 707 
     | 
    
         
            +
                  packages += %w(gnupg)
         
     | 
| 
       678 
708 
     | 
    
         
             
                end
         
     | 
| 
       679 
709 
     | 
    
         | 
| 
       680 
710 
     | 
    
         
             
                # charlock_holmes.  Placed here as the library itself is
         
     | 
| 
         @@ -708,10 +738,10 @@ private 
     | 
|
| 
       708 
738 
     | 
    
         | 
| 
       709 
739 
     | 
    
         
             
              def build_packages
         
     | 
| 
       710 
740 
     | 
    
         
             
                # start with the essentials
         
     | 
| 
       711 
     | 
    
         
            -
                packages = %w(build-essential)
         
     | 
| 
      
 741 
     | 
    
         
            +
                packages = %w(build-essential libyaml-dev)
         
     | 
| 
       712 
742 
     | 
    
         
             
                packages += @@packages["build"] if @@packages["build"]
         
     | 
| 
       713 
743 
     | 
    
         
             
                packages += %w(nodejs npm) if (node_version == "lts") && (not using_execjs?)
         
     | 
| 
       714 
     | 
    
         
            -
                packages << " 
     | 
| 
      
 744 
     | 
    
         
            +
                packages << "libffi-dev" if  @@packages["ffi"]
         
     | 
| 
       715 
745 
     | 
    
         | 
| 
       716 
746 
     | 
    
         
             
                # add databases: sqlite3, postgres, mysql
         
     | 
| 
       717 
747 
     | 
    
         
             
                packages << "pkg-config" if options.sqlite3? || @sqlite3
         
     | 
| 
         @@ -725,9 +755,6 @@ private 
     | 
|
| 
       725 
755 
     | 
    
         
             
                # add git if needed to install gems
         
     | 
| 
       726 
756 
     | 
    
         
             
                packages << "git" if @git
         
     | 
| 
       727 
757 
     | 
    
         | 
| 
       728 
     | 
    
         
            -
                # ActiveStorage preview support
         
     | 
| 
       729 
     | 
    
         
            -
                packages << "libvips" if @gemfile.include? "ruby-vips"
         
     | 
| 
       730 
     | 
    
         
            -
             
     | 
| 
       731 
758 
     | 
    
         
             
                # Rmagick gem
         
     | 
| 
       732 
759 
     | 
    
         
             
                packages += %w[pkg-config libmagickwand-dev] if @gemfile.include? "rmagick"
         
     | 
| 
       733 
760 
     | 
    
         | 
| 
         @@ -736,7 +763,7 @@ private 
     | 
|
| 
       736 
763 
     | 
    
         
             
                  packages += %w(node-gyp pkg-config)
         
     | 
| 
       737 
764 
     | 
    
         | 
| 
       738 
765 
     | 
    
         
             
                  unless using_execjs? || using_puppeteer?
         
     | 
| 
       739 
     | 
    
         
            -
                    packages << "curl"
         
     | 
| 
      
 766 
     | 
    
         
            +
                    # packages << "curl"
         
     | 
| 
       740 
767 
     | 
    
         
             
                  end
         
     | 
| 
       741 
768 
     | 
    
         | 
| 
       742 
769 
     | 
    
         
             
                  # module build process depends on Python, and debian changed
         
     | 
| 
         @@ -762,7 +789,7 @@ private 
     | 
|
| 
       762 
789 
     | 
    
         
             
                end
         
     | 
| 
       763 
790 
     | 
    
         | 
| 
       764 
791 
     | 
    
         
             
                if using_bun?
         
     | 
| 
       765 
     | 
    
         
            -
                  packages += %w( 
     | 
| 
      
 792 
     | 
    
         
            +
                  packages += %w(unzip)
         
     | 
| 
       766 
793 
     | 
    
         
             
                end
         
     | 
| 
       767 
794 
     | 
    
         | 
| 
       768 
795 
     | 
    
         
             
                if options.alpine?
         
     | 
| 
         @@ -773,18 +800,9 @@ private 
     | 
|
| 
       773 
800 
     | 
    
         
             
              end
         
     | 
| 
       774 
801 
     | 
    
         | 
| 
       775 
802 
     | 
    
         
             
              def deploy_packages
         
     | 
| 
       776 
     | 
    
         
            -
                packages =  
     | 
| 
      
 803 
     | 
    
         
            +
                packages = []
         
     | 
| 
       777 
804 
     | 
    
         
             
                packages += @@packages["deploy"] if @@packages["deploy"]
         
     | 
| 
       778 
805 
     | 
    
         | 
| 
       779 
     | 
    
         
            -
                # start with databases: sqlite3, postgres, mysql
         
     | 
| 
       780 
     | 
    
         
            -
                packages << "postgresql-client" if options.postgresql? || @postgresql
         
     | 
| 
       781 
     | 
    
         
            -
                packages << "default-mysql-client" if options.mysql? || @mysql
         
     | 
| 
       782 
     | 
    
         
            -
                packages << "freetds-bin" if options.sqlserver? || @sqlserver
         
     | 
| 
       783 
     | 
    
         
            -
                packages << "libjemalloc2" if options.jemalloc? && !options.fullstaq?
         
     | 
| 
       784 
     | 
    
         
            -
                if options.sqlite3? || @sqlite3
         
     | 
| 
       785 
     | 
    
         
            -
                  packages << "libsqlite3-0" unless packages.include? "sqlite3"
         
     | 
| 
       786 
     | 
    
         
            -
                end
         
     | 
| 
       787 
     | 
    
         
            -
             
     | 
| 
       788 
806 
     | 
    
         
             
                # litefs
         
     | 
| 
       789 
807 
     | 
    
         
             
                packages += ["ca-certificates", "fuse3", "sudo"] if options.litefs?
         
     | 
| 
       790 
808 
     | 
    
         | 
| 
         @@ -865,7 +883,7 @@ private 
     | 
|
| 
       865 
883 
     | 
    
         
             
                packages = []
         
     | 
| 
       866 
884 
     | 
    
         | 
| 
       867 
885 
     | 
    
         
             
                if using_passenger?
         
     | 
| 
       868 
     | 
    
         
            -
                  packages += %w(gnupg 
     | 
| 
      
 886 
     | 
    
         
            +
                  packages += %w(curl gnupg)
         
     | 
| 
       869 
887 
     | 
    
         
             
                  repos += [
         
     | 
| 
       870 
888 
     | 
    
         
             
                   "curl https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key.txt |",
         
     | 
| 
       871 
889 
     | 
    
         
             
                   "  gpg --dearmor > /etc/apt/trusted.gpg.d/phusion.gpg &&",
         
     | 
| 
         @@ -891,7 +909,7 @@ private 
     | 
|
| 
       891 
909 
     | 
    
         
             
                packages = []
         
     | 
| 
       892 
910 
     | 
    
         | 
| 
       893 
911 
     | 
    
         
             
                if using_puppeteer? && deploy_packages.include?("google-chrome-stable")
         
     | 
| 
       894 
     | 
    
         
            -
                  packages += %w(gnupg 
     | 
| 
      
 912 
     | 
    
         
            +
                  packages += %w(gnupg)
         
     | 
| 
       895 
913 
     | 
    
         
             
                  repos += [
         
     | 
| 
       896 
914 
     | 
    
         
             
                   "curl https://dl-ssl.google.com/linux/linux_signing_key.pub |",
         
     | 
| 
       897 
915 
     | 
    
         
             
                   "  gpg --dearmor > /etc/apt/trusted.gpg.d/google-archive.gpg &&",
         
     | 
| 
         @@ -979,8 +997,8 @@ private 
     | 
|
| 
       979 
997 
     | 
    
         
             
                end
         
     | 
| 
       980 
998 
     | 
    
         | 
| 
       981 
999 
     | 
    
         
             
                if options.jemalloc? && !options.fullstaq?
         
     | 
| 
       982 
     | 
    
         
            -
                  env["LD_PRELOAD"] = "libjemalloc.so.2"
         
     | 
| 
       983 
     | 
    
         
            -
                  env["MALLOC_CONF"] = "dirty_decay_ms:1000,narenas:2,background_thread:true"
         
     | 
| 
      
 1000 
     | 
    
         
            +
                  # env["LD_PRELOAD"] = "libjemalloc.so.2"
         
     | 
| 
      
 1001 
     | 
    
         
            +
                  # env["MALLOC_CONF"] = "dirty_decay_ms:1000,narenas:2,background_thread:true"
         
     | 
| 
       984 
1002 
     | 
    
         
             
                end
         
     | 
| 
       985 
1003 
     | 
    
         | 
| 
       986 
1004 
     | 
    
         
             
                if using_puppeteer?
         
     | 
| 
         @@ -1133,6 +1151,30 @@ private 
     | 
|
| 
       1133 
1151 
     | 
    
         
             
                end
         
     | 
| 
       1134 
1152 
     | 
    
         
             
              end
         
     | 
| 
       1135 
1153 
     | 
    
         | 
| 
      
 1154 
     | 
    
         
            +
              def start_command
         
     | 
| 
      
 1155 
     | 
    
         
            +
                if !options.procfile.blank?
         
     | 
| 
      
 1156 
     | 
    
         
            +
                  ["foreman", "start", "--procfile=#{options.procfile}"]
         
     | 
| 
      
 1157 
     | 
    
         
            +
                elsif procfile.size > 1
         
     | 
| 
      
 1158 
     | 
    
         
            +
                  ["foreman", "start", "--procfile=Procfile.prod"]
         
     | 
| 
      
 1159 
     | 
    
         
            +
                else
         
     | 
| 
      
 1160 
     | 
    
         
            +
                  command = Shellwords.split(procfile.values.first)
         
     | 
| 
      
 1161 
     | 
    
         
            +
             
     | 
| 
      
 1162 
     | 
    
         
            +
                  if command.first == "./bin/thrust"
         
     | 
| 
      
 1163 
     | 
    
         
            +
                    command[1..]
         
     | 
| 
      
 1164 
     | 
    
         
            +
                  else
         
     | 
| 
      
 1165 
     | 
    
         
            +
                    command
         
     | 
| 
      
 1166 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1167 
     | 
    
         
            +
                end
         
     | 
| 
      
 1168 
     | 
    
         
            +
              end
         
     | 
| 
      
 1169 
     | 
    
         
            +
             
     | 
| 
      
 1170 
     | 
    
         
            +
              def shellescape(string)
         
     | 
| 
      
 1171 
     | 
    
         
            +
                if %r{\A[-\w._/= ]+\z}.match?(string)
         
     | 
| 
      
 1172 
     | 
    
         
            +
                  string.inspect
         
     | 
| 
      
 1173 
     | 
    
         
            +
                else
         
     | 
| 
      
 1174 
     | 
    
         
            +
                  Shellwords.escape(string)
         
     | 
| 
      
 1175 
     | 
    
         
            +
                end
         
     | 
| 
      
 1176 
     | 
    
         
            +
              end
         
     | 
| 
      
 1177 
     | 
    
         
            +
             
     | 
| 
       1136 
1178 
     | 
    
         
             
              def node_version
         
     | 
| 
       1137 
1179 
     | 
    
         
             
                return unless using_node? || using_execjs?
         
     | 
| 
       1138 
1180 
     | 
    
         | 
| 
         @@ -1252,6 +1294,10 @@ private 
     | 
|
| 
       1252 
1294 
     | 
    
         
             
                  }
         
     | 
| 
       1253 
1295 
     | 
    
         
             
                end
         
     | 
| 
       1254 
1296 
     | 
    
         | 
| 
      
 1297 
     | 
    
         
            +
                if using_litestream? && base[:rails]
         
     | 
| 
      
 1298 
     | 
    
         
            +
                  base[:rails] = "./bin/rake litestream:run " + base[:rails]
         
     | 
| 
      
 1299 
     | 
    
         
            +
                end
         
     | 
| 
      
 1300 
     | 
    
         
            +
             
     | 
| 
       1255 
1301 
     | 
    
         
             
                if solidq_launcher == :procfile
         
     | 
| 
       1256 
1302 
     | 
    
         
             
                  base["solidq"] = "bundle exec rake solid_queue:start"
         
     | 
| 
       1257 
1303 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1263,6 +1309,10 @@ private 
     | 
|
| 
       1263 
1309 
     | 
    
         
             
                options.thruster? || @gemfile.include?("thruster")
         
     | 
| 
       1264 
1310 
     | 
    
         
             
              end
         
     | 
| 
       1265 
1311 
     | 
    
         | 
| 
      
 1312 
     | 
    
         
            +
              def using_kamal?
         
     | 
| 
      
 1313 
     | 
    
         
            +
                @gemfile.include?("kamal")
         
     | 
| 
      
 1314 
     | 
    
         
            +
              end
         
     | 
| 
      
 1315 
     | 
    
         
            +
             
     | 
| 
       1266 
1316 
     | 
    
         
             
              def fly_processes
         
     | 
| 
       1267 
1317 
     | 
    
         
             
                return unless File.exist? "fly.toml"
         
     | 
| 
       1268 
1318 
     | 
    
         
             
                return unless using_sidekiq? || using_solidq? || using_thruster?
         
     | 
| 
         @@ -1468,6 +1518,10 @@ private 
     | 
|
| 
       1468 
1518 
     | 
    
         
             
                    list[primary] = list[primary].sub(/^.*thrust /, "")
         
     | 
| 
       1469 
1519 
     | 
    
         
             
                  end
         
     | 
| 
       1470 
1520 
     | 
    
         | 
| 
      
 1521 
     | 
    
         
            +
                  if using_litestream? && list["app"]
         
     | 
| 
      
 1522 
     | 
    
         
            +
                    list["app"] = "./bin/rake litestream:run #{list["app"]}"
         
     | 
| 
      
 1523 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1524 
     | 
    
         
            +
             
     | 
| 
       1471 
1525 
     | 
    
         
             
                  if toml.include? "[processes]"
         
     | 
| 
       1472 
1526 
     | 
    
         
             
                    toml.sub!(/\[processes\].*?(\n\n|\n?\z)/m, "[processes]\n" +
         
     | 
| 
       1473 
1527 
     | 
    
         
             
                      list.map { |name, cmd| "  #{name} = #{cmd.inspect}" }.join("\n") + '\1')
         
     | 
| 
         @@ -1,6 +1,15 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # syntax 
     | 
| 
      
 1 
     | 
    
         
            +
            # syntax=docker/dockerfile:1
         
     | 
| 
      
 2 
     | 
    
         
            +
            # check=error=true
         
     | 
| 
      
 3 
     | 
    
         
            +
            <% if using_kamal? -%>
         
     | 
| 
       2 
4 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            #  
     | 
| 
      
 5 
     | 
    
         
            +
            # This Dockerfile is designed for production, not development. Use with Kamal or build'n'run by hand:
         
     | 
| 
      
 6 
     | 
    
         
            +
            # docker build -t demo .
         
     | 
| 
      
 7 
     | 
    
         
            +
            # docker run -d -p 80:80 -e RAILS_MASTER_KEY=<value from config/master.key> --name demo demo
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            # For a containerized dev environment, see Dev Containers: https://guides.rubyonrails.org/getting_started_with_devcontainer.html
         
     | 
| 
      
 10 
     | 
    
         
            +
            <% end -%>
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            # Make sure RUBY_VERSION matches the Ruby version in .ruby-version
         
     | 
| 
       4 
13 
     | 
    
         
             
            ARG RUBY_VERSION=<%= RUBY_VERSION %>
         
     | 
| 
       5 
14 
     | 
    
         
             
            <% if api_client_dir -%>
         
     | 
| 
       6 
15 
     | 
    
         
             
            <%= render partial: 'node_client' %>
         
     | 
| 
         @@ -27,18 +36,18 @@ WORKDIR /rails 
     | 
|
| 
       27 
36 
     | 
    
         
             
            ARG <%= base_args.map {|key, value| "#{key}=#{value.inspect}"}.join(" \\\n    ") %>
         
     | 
| 
       28 
37 
     | 
    
         | 
| 
       29 
38 
     | 
    
         
             
            <% end -%>
         
     | 
| 
       30 
     | 
    
         
            -
            # Set production environment
         
     | 
| 
       31 
     | 
    
         
            -
            ENV <%= base_env.join(" \\\n    ") %>
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
39 
     | 
    
         
             
            # Update gems and bundler
         
     | 
| 
       34 
40 
     | 
    
         
             
            RUN gem update --system <% if RUBY_VERSION.start_with? '2' %>3.4.22 <% end %>--no-document && \
         
     | 
| 
       35 
41 
     | 
    
         
             
                gem install -N <%= base_gems.join(" ") %>
         
     | 
| 
       36 
42 
     | 
    
         | 
| 
       37 
43 
     | 
    
         
             
            <% unless base_packages.empty? -%>
         
     | 
| 
       38 
     | 
    
         
            -
            # Install packages<% unless base_requirements.empty? -%> needed to install <%= base_requirements %><% end %>
         
     | 
| 
      
 44 
     | 
    
         
            +
            # Install base packages<% unless base_requirements.empty? -%> needed to install <%= base_requirements %><% end %>
         
     | 
| 
       39 
45 
     | 
    
         
             
            <%= render partial: 'apt_install', locals: {packages: base_packages, clean: true, repos: base_repos} %>
         
     | 
| 
       40 
46 
     | 
    
         | 
| 
       41 
47 
     | 
    
         
             
            <% end -%>
         
     | 
| 
      
 48 
     | 
    
         
            +
            # Set production environment
         
     | 
| 
      
 49 
     | 
    
         
            +
            ENV <%= base_env.join(" \\\n    ") %>
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
       42 
51 
     | 
    
         
             
            <% if using_execjs? and node_version != 'lts' -%>
         
     | 
| 
       43 
52 
     | 
    
         
             
            <%= render partial: 'install_node', locals: {yarn_version: nil} %>
         
     | 
| 
       44 
53 
     | 
    
         | 
| 
         @@ -54,7 +63,7 @@ FROM base AS <%= parallel? ? 'pre' : '' %>build 
     | 
|
| 
       54 
63 
     | 
    
         | 
| 
       55 
64 
     | 
    
         
             
            <% end -%>
         
     | 
| 
       56 
65 
     | 
    
         
             
            # Install packages needed to build gems<%= using_node? ? " and node modules" : "" %>
         
     | 
| 
       57 
     | 
    
         
            -
            <%= render partial: 'apt_install', locals: {packages: build_packages, clean:  
     | 
| 
      
 66 
     | 
    
         
            +
            <%= render partial: 'apt_install', locals: {packages: build_packages, clean: true, repos: ''} %>
         
     | 
| 
       58 
67 
     | 
    
         | 
| 
       59 
68 
     | 
    
         
             
            <% if parallel? -%>
         
     | 
| 
       60 
69 
     | 
    
         | 
| 
         @@ -113,13 +122,12 @@ RUN --mount=type=cache,id=bld-gem-cache,sharing=locked,target=/srv/vendor \ 
     | 
|
| 
       113 
122 
     | 
    
         
             
            RUN --mount=type=secret,id=gemserver_credentials,target=/kaniko/gemserver_credentials \
         
     | 
| 
       114 
123 
     | 
    
         
             
                <%= private_gemserver_env_variable_name %>="$(cat /kaniko/gemserver_credentials)" && \
         
     | 
| 
       115 
124 
     | 
    
         
             
                export <%= private_gemserver_env_variable_name %> && \
         
     | 
| 
       116 
     | 
    
         
            -
                bundle install 
     | 
| 
       117 
     | 
    
         
            -
                bundle exec bootsnap precompile --gemfile<% end %> && \
         
     | 
| 
      
 125 
     | 
    
         
            +
                bundle install && \
         
     | 
| 
       118 
126 
     | 
    
         
             
            <% else -%>
         
     | 
| 
       119 
     | 
    
         
            -
            RUN <% if options["precompiled-gems"] != true %>bundle config set force_ruby_platform true && \<%= "\n    " %><% end %>bundle install 
     | 
| 
       120 
     | 
    
         
            -
                bundle exec bootsnap precompile --gemfile<% end %> && \
         
     | 
| 
      
 127 
     | 
    
         
            +
            RUN <% if options["precompiled-gems"] != true %>bundle config set force_ruby_platform true && \<%= "\n    " %><% end %>bundle install && \
         
     | 
| 
       121 
128 
     | 
    
         
             
            <% end -%>
         
     | 
| 
       122 
     | 
    
         
            -
                rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git
         
     | 
| 
      
 129 
     | 
    
         
            +
                rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git<% if depend_on_bootsnap? && options.precompile != "defer" -%> && \
         
     | 
| 
      
 130 
     | 
    
         
            +
                bundle exec bootsnap precompile --gemfile<% end %>
         
     | 
| 
       123 
131 
     | 
    
         | 
| 
       124 
132 
     | 
    
         
             
            <% end -%>
         
     | 
| 
       125 
133 
     | 
    
         
             
            <% if using_passenger? -%>
         
     | 
| 
         @@ -298,7 +306,11 @@ COPY <<-"EOF" /rails/Procfile.prod 
     | 
|
| 
       298 
306 
     | 
    
         
             
            EOF
         
     | 
| 
       299 
307 
     | 
    
         | 
| 
       300 
308 
     | 
    
         
             
            <% end -%>
         
     | 
| 
      
 309 
     | 
    
         
            +
            <% if using_thruster? -%>
         
     | 
| 
      
 310 
     | 
    
         
            +
            # Start server via Thruster by default, this can be overwritten at runtime
         
     | 
| 
      
 311 
     | 
    
         
            +
            <% else -%>
         
     | 
| 
       301 
312 
     | 
    
         
             
            # Start the server by default, this can be overwritten at runtime
         
     | 
| 
      
 313 
     | 
    
         
            +
            <% end -%>
         
     | 
| 
       302 
314 
     | 
    
         
             
            EXPOSE <%= using_thruster? ? '80' : '3000' %>
         
     | 
| 
       303 
315 
     | 
    
         
             
            <% if deploy_database == 'sqlite3' -%>
         
     | 
| 
       304 
316 
     | 
    
         
             
            VOLUME /data
         
     | 
| 
         @@ -4,6 +4,14 @@ 
     | 
|
| 
       4 
4 
     | 
    
         
             
            #!/bin/bash -e
         
     | 
| 
       5 
5 
     | 
    
         
             
            <% end -%>
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
      
 7 
     | 
    
         
            +
            <% if options.jemalloc? -%>
         
     | 
| 
      
 8 
     | 
    
         
            +
            # Enable jemalloc for reduced memory usage and latency.
         
     | 
| 
      
 9 
     | 
    
         
            +
            if [ -z "${LD_PRELOAD+x}" ]; then
         
     | 
| 
      
 10 
     | 
    
         
            +
                LD_PRELOAD=$(find /usr/lib -name libjemalloc.so.2 -print -quit)
         
     | 
| 
      
 11 
     | 
    
         
            +
                export LD_PRELOAD
         
     | 
| 
      
 12 
     | 
    
         
            +
            fi
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            <% end -%>
         
     | 
| 
       7 
15 
     | 
    
         
             
            <% if options.swap && !File.exist?("fly.toml")-%>
         
     | 
| 
       8 
16 
     | 
    
         
             
            <% if run_as_root? or using_passenger? -%>
         
     | 
| 
       9 
17 
     | 
    
         
             
            <% @space = "" -%>
         
     | 
| 
         @@ -36,17 +44,13 @@ fi 
     | 
|
| 
       36 
44 
     | 
    
         
             
            <% end -%>
         
     | 
| 
       37 
45 
     | 
    
         
             
            <% if options.prepare -%>
         
     | 
| 
       38 
46 
     | 
    
         
             
            <% if !options.procfile.blank? -%>
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
      
 47 
     | 
    
         
            +
            # If running the specified procfile then create or migrate existing database
         
     | 
| 
       40 
48 
     | 
    
         
             
            <% elsif procfile.size > 1 -%>
         
     | 
| 
       41 
49 
     | 
    
         
             
            # If running the production procfile then create or migrate existing database
         
     | 
| 
       42 
     | 
    
         
            -
            if [ "${*}" == "foreman start --procfile=Procfile.prod" ]; then
         
     | 
| 
       43 
     | 
    
         
            -
            <% elsif procfile.values.first.start_with? "./bin/rails server" -%>
         
     | 
| 
       44 
     | 
    
         
            -
            # If running the rails server then create or migrate existing database
         
     | 
| 
       45 
     | 
    
         
            -
            if [ "${1}" == "./bin/rails" ] && [ "${2}" == "server" ]<% if using_litefs? %> && [ "$FLY_REGION" == "$PRIMARY_REGION" ]<%end%>; then
         
     | 
| 
       46 
50 
     | 
    
         
             
            <% else -%>
         
     | 
| 
       47 
51 
     | 
    
         
             
            # If running the rails server then create or migrate existing database
         
     | 
| 
       48 
     | 
    
         
            -
            if [ "${*}" == <%= procfile.values.first.inspect %> <% if using_litefs? %>-a "$FLY_REGION" == "$PRIMARY_REGION" <%end%>]; then
         
     | 
| 
       49 
52 
     | 
    
         
             
            <% end -%>
         
     | 
| 
      
 53 
     | 
    
         
            +
            if <%= start_command.map.with_index {|word, index| "[ \"${@: #{index - start_command.length}:1}\" == #{shellescape(word)} ]"}.join(" && ") %><% if using_litefs? %> && [ "$FLY_REGION" == "$PRIMARY_REGION" ]<%end%>; then
         
     | 
| 
       50 
54 
     | 
    
         
             
            <% if options.precompile == "defer" -%>
         
     | 
| 
       51 
55 
     | 
    
         
             
              ./bin/rails assets:precompile
         
     | 
| 
       52 
56 
     | 
    
         
             
            <% end -%>
         
     | 
| 
         @@ -2,13 +2,13 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            # Ignore git directory.
         
     | 
| 
       4 
4 
     | 
    
         
             
            /.git/
         
     | 
| 
      
 5 
     | 
    
         
            +
            /.gitignore
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
7 
     | 
    
         
             
            # Ignore bundler config.
         
     | 
| 
       7 
8 
     | 
    
         
             
            /.bundle
         
     | 
| 
       8 
9 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
            # Ignore all environment files 
     | 
| 
      
 10 
     | 
    
         
            +
            # Ignore all environment files.
         
     | 
| 
       10 
11 
     | 
    
         
             
            /.env*
         
     | 
| 
       11 
     | 
    
         
            -
            !/.env*.erb
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            # Ignore all default key files.
         
     | 
| 
       14 
14 
     | 
    
         
             
            /config/master.key
         
     | 
| 
         @@ -50,4 +50,18 @@ GEMSERVER_CREDENTIALS.secret.txt 
     | 
|
| 
       50 
50 
     | 
    
         
             
            <% end -%>
         
     | 
| 
       51 
51 
     | 
    
         
             
            /public/assets
         
     | 
| 
       52 
52 
     | 
    
         
             
            <% end -%>
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            # Ignore CI service files.
         
     | 
| 
      
 55 
     | 
    
         
            +
            /.github
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            # Ignore Kamal files.
         
     | 
| 
      
 58 
     | 
    
         
            +
            /config/deploy*.yml
         
     | 
| 
      
 59 
     | 
    
         
            +
            /.kamal
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            # Ignore development files
         
     | 
| 
      
 62 
     | 
    
         
            +
            /.devcontainer
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            # Ignore Docker-related files
         
     | 
| 
      
 65 
     | 
    
         
            +
            /.dockerignore
         
     | 
| 
      
 66 
     | 
    
         
            +
            /Dockerfile*
         
     | 
| 
       53 
67 
     | 
    
         
             
            <%= more_docker_ignores -%>
         
     | 
| 
         @@ -0,0 +1,55 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            LITESTREAM_CONFIG = ENV["LITESTREAM_CONFIG"] || Rails.root.join("tmp/litestream.yml").to_s
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            LITESTREAM_TEMPLATE = <<-EOF
         
     | 
| 
      
 4 
     | 
    
         
            +
            # This is the configuration file for litestream.
         
     | 
| 
      
 5 
     | 
    
         
            +
            #
         
     | 
| 
      
 6 
     | 
    
         
            +
            # For more details, see: https://litestream.io/reference/config/
         
     | 
| 
      
 7 
     | 
    
         
            +
            #
         
     | 
| 
      
 8 
     | 
    
         
            +
            dbs:
         
     | 
| 
      
 9 
     | 
    
         
            +
            <%% for db in @dbs -%>
         
     | 
| 
      
 10 
     | 
    
         
            +
              - path: <%%= db %>
         
     | 
| 
      
 11 
     | 
    
         
            +
                replicas:
         
     | 
| 
      
 12 
     | 
    
         
            +
                  - type: s3
         
     | 
| 
      
 13 
     | 
    
         
            +
                    endpoint: $AWS_ENDPOINT_URL_S3
         
     | 
| 
      
 14 
     | 
    
         
            +
                    bucket: $BUCKET_NAME
         
     | 
| 
      
 15 
     | 
    
         
            +
                    path: storage/<%%= File.basename(db) %>
         
     | 
| 
      
 16 
     | 
    
         
            +
                    access-key-id: $AWS_ACCESS_KEY_ID
         
     | 
| 
      
 17 
     | 
    
         
            +
                    secret-access-key: $AWS_SECRET_ACCESS_KEY
         
     | 
| 
      
 18 
     | 
    
         
            +
            <%% end -%>
         
     | 
| 
      
 19 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            namespace :litestream do
         
     | 
| 
      
 22 
     | 
    
         
            +
              task prepare: "db:load_config" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                require "erubi"
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                @dbs =
         
     | 
| 
      
 26 
     | 
    
         
            +
                  ActiveRecord::Base
         
     | 
| 
      
 27 
     | 
    
         
            +
                    .configurations
         
     | 
| 
      
 28 
     | 
    
         
            +
                    .configs_for(env_name: "production", include_hidden: true)
         
     | 
| 
      
 29 
     | 
    
         
            +
                    .select { |config| [ "sqlite3", "litedb" ].include? config.adapter }
         
     | 
| 
      
 30 
     | 
    
         
            +
                    .map(&:database)
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                result = eval(Erubi::Engine.new(LITESTREAM_TEMPLATE).src)
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                unless File.exist?(LITESTREAM_CONFIG) && File.read(LITESTREAM_CONFIG) == result
         
     | 
| 
      
 35 
     | 
    
         
            +
                  File.write(LITESTREAM_CONFIG, result)
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                @dbs.each do |db|
         
     | 
| 
      
 39 
     | 
    
         
            +
                  next if File.exist?(db) or !ENV["BUCKET_NAME"]
         
     | 
| 
      
 40 
     | 
    
         
            +
                  system "litestream restore -config #{LITESTREAM_CONFIG} -if-replica-exists #{db}"
         
     | 
| 
      
 41 
     | 
    
         
            +
                  exit $?.exitstatus unless $?.exitstatus == 0
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
              end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              task :run do
         
     | 
| 
      
 46 
     | 
    
         
            +
                require "shellwords"
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                exec(*%w[bundle exec litestream replicate -config],
         
     | 
| 
      
 49 
     | 
    
         
            +
                  LITESTREAM_CONFIG, "-exec", Shellwords.join(ARGV[1..-1]))
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
            end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            namespace :db do
         
     | 
| 
      
 54 
     | 
    
         
            +
              task prepare: "litestream:prepare"
         
     | 
| 
      
 55 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: dockerfile-rails
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.7.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Sam Ruby
         
     | 
| 
       8 
     | 
    
         
            -
            autorequire:
         
     | 
| 
       9 
8 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
9 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 10 
     | 
    
         
            +
            date: 2025-01-14 00:00:00.000000000 Z
         
     | 
| 
       12 
11 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
12 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
13 
     | 
    
         
             
              name: rails
         
     | 
| 
         @@ -24,7 +23,6 @@ dependencies: 
     | 
|
| 
       24 
23 
     | 
    
         
             
                - - ">="
         
     | 
| 
       25 
24 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
25 
     | 
    
         
             
                    version: 3.0.0
         
     | 
| 
       27 
     | 
    
         
            -
            description:
         
     | 
| 
       28 
26 
     | 
    
         
             
            email: rubys@intertwingly.net
         
     | 
| 
       29 
27 
     | 
    
         
             
            executables: []
         
     | 
| 
       30 
28 
     | 
    
         
             
            extensions: []
         
     | 
| 
         @@ -52,6 +50,7 @@ files: 
     | 
|
| 
       52 
50 
     | 
    
         
             
            - lib/generators/templates/dockerignore.erb
         
     | 
| 
       53 
51 
     | 
    
         
             
            - lib/generators/templates/fly.toml.erb
         
     | 
| 
       54 
52 
     | 
    
         
             
            - lib/generators/templates/litefs.yml.erb
         
     | 
| 
      
 53 
     | 
    
         
            +
            - lib/generators/templates/litestream.rake.erb
         
     | 
| 
       55 
54 
     | 
    
         
             
            - lib/generators/templates/node-version.erb
         
     | 
| 
       56 
55 
     | 
    
         
             
            - lib/generators/templates/rollbar.rb.erb
         
     | 
| 
       57 
56 
     | 
    
         
             
            - lib/generators/templates/sentry.rb.erb
         
     | 
| 
         @@ -60,7 +59,6 @@ licenses: 
     | 
|
| 
       60 
59 
     | 
    
         
             
            - MIT
         
     | 
| 
       61 
60 
     | 
    
         
             
            metadata:
         
     | 
| 
       62 
61 
     | 
    
         
             
              homepage_uri: https://github.com/fly-apps/dockerfile-rails
         
     | 
| 
       63 
     | 
    
         
            -
            post_install_message:
         
     | 
| 
       64 
62 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       65 
63 
     | 
    
         
             
            require_paths:
         
     | 
| 
       66 
64 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -75,8 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       75 
73 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       76 
74 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       77 
75 
     | 
    
         
             
            requirements: []
         
     | 
| 
       78 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
       79 
     | 
    
         
            -
            signing_key:
         
     | 
| 
      
 76 
     | 
    
         
            +
            rubygems_version: 3.6.2
         
     | 
| 
       80 
77 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       81 
78 
     | 
    
         
             
            summary: Dockerfile generator for Rails
         
     | 
| 
       82 
79 
     | 
    
         
             
            test_files: []
         
     |