docker-compose-builder - DockerComposeBuilder 0.2.3-nightly0001
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.3-nightly0001 -Source https://www.myget.org/F/docker-compose-builder/api/v3/index.json
> nuget.exe install DockerComposeBuilder -Version 0.2.3-nightly0001 -Source https://www.myget.org/F/docker-compose-builder/api/v3/index.json
> dotnet add package DockerComposeBuilder --version 0.2.3-nightly0001 --source https://www.myget.org/F/docker-compose-builder/api/v3/index.json
source https://www.myget.org/F/docker-compose-builder/api/v3/index.json
nuget DockerComposeBuilder ~> 0.2.3-nightly0001
Copy to clipboard
> choco install DockerComposeBuilder --version 0.2.3-nightly0001 --source https://www.myget.org/F/docker-compose-builder/api/v2
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.3-nightly0001" -Repository "docker-compose-builder" -AllowPreRelease
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/
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 7.0: 7.0.0.0
- .NETStandard 2.0: 2.0.0.0
Ownerstrejbal |
AuthorsDavid Dolyniuk, Jan Trejbal |
Project URLhttps://github.com/aviationexam/docker-compose-builder |
LicenseUnknown |
TagsDocker Docker-Compose Builder |
Info698 total downloads |
| 70 downloads for version 0.2.3-nightly0001 |
| Download (35.07 KB) |
| Download symbols (42.49 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 |
|