#docker #validation #parser #api

compose-validatr

Library for parsing and validating Docker compose manifests

4 releases

0.1.3 Nov 18, 2023
0.1.2 Oct 12, 2023
0.1.1 Oct 12, 2023
0.1.0 Oct 3, 2023

#2407 in Parser implementations

MIT license

77KB
2K SLoC

Unit Tests and Formatting

compose-validatr

Rust library for validating and inspecting docker compose configs

Goals

The main reason this library exists is for another web app project I am working on for visualizing docker-compose configs.

This library is primarily meant for parsing the metadata from a compose yaml and performing surface level validation.

This library performs all validation except host device and local files validation, since that is out of scope of what I need this library for.

Example

// Simple docker-compose.yaml &str
let yaml = r#"
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    hostname: gitlab
    restart: always
    build:
      context: .
      dockerfile: webapp.Dockerfile
"#;

let compose = Compose::new(yaml).unwrap();
compose.services.keys().for_each(|service_name| println!("Service: {}", service_name));

Dependencies

~4–6MB
~112K SLoC