Sha256: b097ad5c85319c6f78a75dfbf4f699685e634b82046b6a29b5313409ff59e99c

Contents?: true

Size: 1.16 KB

Versions: 8

Compression:

Stored size: 1.16 KB

Contents

class Kamal::Commands::Builder::Native::Remote < Kamal::Commands::Builder::Native
  def create
    chain \
      create_context,
      create_buildx
  end

  def remove
    chain \
      remove_context,
      remove_buildx
  end

  def push
    docker :buildx, :build,
      "--push",
      "--platform", platform,
      "--builder", builder_name,
      *build_options,
      build_context
  end

  def info
    chain \
      docker(:context, :ls),
      docker(:buildx, :ls)
  end


  private
    def builder_name
      "kamal-#{config.service}-native-remote"
    end

    def builder_name_with_arch
      "#{builder_name}-#{remote_arch}"
    end

    def platform
      "linux/#{remote_arch}"
    end

    def create_context
      docker :context, :create,
        builder_name_with_arch, "--description", "'#{builder_name} #{remote_arch} native host'", "--docker", "'host=#{remote_host}'"
    end

    def remove_context
      docker :context, :rm, builder_name_with_arch
    end

    def create_buildx
      docker :buildx, :create, "--name", builder_name, builder_name_with_arch, "--platform", platform
    end

    def remove_buildx
      docker :buildx, :rm, builder_name
    end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
kamal-1.4.0 lib/kamal/commands/builder/native/remote.rb
kamal-1.3.1 lib/kamal/commands/builder/native/remote.rb
kamal-1.3.0 lib/kamal/commands/builder/native/remote.rb
kamal-1.2.0 lib/kamal/commands/builder/native/remote.rb
kamal-1.1.0 lib/kamal/commands/builder/native/remote.rb
kamal-1.0.0 lib/kamal/commands/builder/native/remote.rb
kamal-0.16.1 lib/kamal/commands/builder/native/remote.rb
kamal-0.16.0 lib/kamal/commands/builder/native/remote.rb