0.0
The project is in a healthy, maintained state
Simplifies interactions with Docker Swarm through an ActiveModel-compatible ORM and a robust Excon-based API client.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 13.0
~> 3.0

Runtime

 Project Readme

docker-swarm

Gem Version License: MIT

Propósito

ORM ligero y cliente API para Docker Swarm en Ruby. Expone las primitivas del Docker Engine (Service, Node, Task, Container, Network, Volume, Config, Secret, Swarm, System, Image) como modelos ActiveModel con CRUD, validaciones y logs estructurados KV. Excon directo sobre el socket Unix (default) o TCP.

Setup

# Gemfile
gem 'docker-swarm', '~> 0.6'
bundle install

Quick start:

require 'docker_swarm'

DockerSwarm.configure do |config|
  config.socket_path = "unix:///var/run/docker.sock"  # default
  config.log_level   = Logger::INFO
end

DockerSwarm::System.up                  # => "OK"
DockerSwarm::Service.all                # => [#<Service ...>, ...]
DockerSwarm::Service.find("svc-id")     # => nil si no existe

Para el contrato completo de la gema (símbolos públicos, gotchas, integración) ver skill/SKILL.md.

Índice de artefactos

Documentación normada (RFC-001) por capa:

Capa Artefacto Estado
Datos n/a (gema sin DB)
Glosario docs/glossary/glossary.md F1 completo
Comportamiento docs/behavior/behavior.md F1 backfill on-demand (8 flujos)
API (operaciones) F2 pendiente; contrato resumido inline en skill/SKILL.md
Interfaz F2 pendiente; contrato resumido inline en skill/SKILL.md
Topología F2 pendiente
Eventos n/a (la gema no emite eventos)

n/a = no aplica al tipo de repo. F2 pendiente = capa declarada en la RFC pero todavía no implementada en dev-structure; el contenido relevante vive transitoriamente en skill/SKILL.md (RFC-008 §2 coexistencia transitoria).

Desarrollo

bundle exec rspec --tag ~type:integration   # unit suite
bundle exec rspec                            # incluye integration (requiere Docker socket)
bundle exec rubocop -a                       # lint

Release: /gem-release (publica a RubyGems via GitHub Action al tag v*).

Licencia

MIT — ver LICENSE.