docker-compose-builder - DockerComposeBuilder 0.2.0

The goal of this project is to generate docker-compose literate YAML in C# using the builder design pattern

PM> Install-Package DockerComposeBuilder -Version 0.2.0 -Source https://www.myget.org/F/docker-compose-builder/api/v3/index.json

Copy to clipboard

> nuget.exe install DockerComposeBuilder -Version 0.2.0 -Source https://www.myget.org/F/docker-compose-builder/api/v3/index.json

Copy to clipboard

> dotnet add package DockerComposeBuilder --version 0.2.0 --source https://www.myget.org/F/docker-compose-builder/api/v3/index.json

Copy to clipboard
<PackageReference Include="DockerComposeBuilder" Version="0.2.0" />
Copy to clipboard
source https://www.myget.org/F/docker-compose-builder/api/v3/index.json

nuget DockerComposeBuilder  ~> 0.2.0
Copy to clipboard

> choco install DockerComposeBuilder --version 0.2.0 --source https://www.myget.org/F/docker-compose-builder/api/v2

Copy to clipboard
Import-Module PowerShellGet
Register-PSRepository -Name "docker-compose-builder" -SourceLocation "https://www.myget.org/F/docker-compose-builder/api/v2"
Install-Module -Name "DockerComposeBuilder" -RequiredVersion "0.2.0" -Repository "docker-compose-builder" 
Copy to clipboard

Browse the sources in this package using Visual Studio or WinDbg by configuring the following symbol server URL: https://www.myget.org/F/docker-compose-builder/api/v2/symbolpackage/


Build Status NuGet MyGet feedz.io

DockerComposeBuilder

The Goal

The goal of this project is to generate docker-compose literate YAML in C# using the builder design pattern

About ComposeBuilderDotNet

This project was inspired by The need to create dynamically generated docker-compose files the right way, without using templates and replacement techniques; as well as providing a wide range of developer friendly methods and enums for quick access without the need to constantly check documentation.

Example Code

var dbUser = "root";
var dbPass = "pass";
var dbName = "wordpress";

var network1 = Builder.MakeNetwork("my-net")
    .SetExternal(true)
    .Build();

var network2 = Builder.MakeNetwork("my-net2")
    .Build();

var mysql = Builder.MakeService("db")
    .WithImage("mysql:5.7")
    .WithNetworks(network1)
    .WithExposed("3306")
    .WithEnvironment(mb => mb
        .WithProperty("MYSQL_ROOT_PASSWORD", dbPass)
        .WithProperty("MYSQL_DATABASE", dbName)
        .WithProperty("MYSQL_USER", dbUser)
        .WithProperty("MYSQL_PASSWORD", dbPass)
    )
    .WithRestartPolicy(ERestartMode.Always)
    .WithSwarm()
    .WithDeploy(d => d
        .WithMode(EReplicationMode.Replicated)
        .WithReplicas(3))
    .Build();

var wordpress = Builder.MakeService("wordpress")
    .WithImage("wordpress:latest")
    .WithNetworks(network1, network2)
    .WithPortMapping("8000:80")
    .WithEnvironment(mb => mb
        .WithProperty("WORDPRESS_DB_HOST", $"{mysql.Name}:3306")
        .WithProperty("WORDPRESS_DB_USER", dbUser)
        .WithProperty("WORDPRESS_DB_PASSWORD", dbPass)
        .WithProperty("WORDPRESS_DB_NAME", dbName)
    )
    .WithDependencies(mysql)
    .WithRestartPolicy(ERestartMode.UnlessStopped)
    .WithSwarm()
    .WithDeploy(d => d
        .WithMode(EReplicationMode.Global)
    )
    .Build();

var compose = Builder.MakeCompose()
    .WithServices(mysql, wordpress)
    .WithNetworks(network1, network2)
    .Build();

// serialize our object graph to yaml for writing to a docker-compose file
var result = compose.Serialize();

  • .NETFramework 6.0
    • YamlDotNet (>= 12.0.2)
  • .NETFramework 7.0
    • YamlDotNet (>= 12.0.2)
  • .NETStandard 2.0
    • YamlDotNet (>= 12.0.2)
  • .NETFramework 6.0: 6.0.0.0
  • .NETFramework 7.0: 7.0.0.0
  • .NETStandard 2.0: 2.0.0.0

Owners

trejbal

Authors

David Dolyniuk, Jan Trejbal

Project URL

https://github.com/aviationexam/docker-compose-builder

License

Unknown

Tags

Docker Docker-Compose Builder

Info

698 total downloads
56 downloads for version 0.2.0
Download (45.39 KB)
Download symbols (35.33 KB)
Found on the current feed only

Package history

Version Size Last updated Downloads Mirrored?
0.2.5-nightly0006 51.05 KB Mon, 11 Dec 2023 11:42:40 GMT 60
0.2.5-nightly0005 51.06 KB Mon, 11 Dec 2023 11:41:06 GMT 52
0.2.5-nightly0003 50.29 KB Tue, 05 Dec 2023 19:55:24 GMT 53
0.2.5-nightly0002 50.31 KB Mon, 20 Nov 2023 12:14:42 GMT 58
0.2.5-nightly0001 50.31 KB Mon, 20 Nov 2023 12:13:24 GMT 64
0.2.4-nightly0002 50.31 KB Wed, 15 Nov 2023 12:07:49 GMT 74
0.2.4-nightly0001 35.64 KB Thu, 09 Nov 2023 13:45:56 GMT 78
0.2.3-nightly0003 35.65 KB Wed, 08 Nov 2023 20:11:15 GMT 68
0.2.3-nightly0002 35.07 KB Fri, 03 Nov 2023 12:15:58 GMT 65
0.2.3-nightly0001 35.07 KB Wed, 01 Nov 2023 19:39:16 GMT 70
0.2.0 45.39 KB Tue, 08 Nov 2022 14:53:04 GMT 56