docker / libcompose

*Unmaintained/Deprecated* An experimental go library providing Compose-like functionality
https://godoc.org/github.com/docker/libcompose
Apache License 2.0
586 stars 191 forks source link

Parse, validate, and load docker-compose v2.1 files #497

Closed jwreagor closed 6 years ago

jwreagor commented 6 years ago

Ref: #441

The goal of this PR is to hopefully introduce v2.1 formatted compose files so I can use libcompose for various stuff I'm working on around Joyent's Elastic Docker Host (Triton).

I've started by refactoring how compose files are loaded and validated by their version numbers. This solves the immediate issue of #441 by cleaning up how the version is referenced when parsing compose YAML. At the moment, I've left off cleaning up how JSON schema files are loaded and passed into config/validation.go. This is working well so I'll start utilizing this for loading v2.1 specifically.

I'm working on this in my spare time ATM (which isn't much) so bare with me. Also, I'm opening this up to get any early feedback. I do realize I need tests for some stuff. 😄

GordonTheTurtle commented 6 years ago

Please sign your commits following these rules: https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work The easiest way to do this is to amend the last commit:

$ git clone -b "441-refactor-v2_1" git@github.com:cheapRoc/libcompose.git somewhere
$ cd somewhere
$ git rebase -i HEAD~842354513824
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

jwreagor commented 6 years ago

I see the lints and probably borked tests... I'll touch up on that next time.

jwreagor commented 6 years ago

This has fallen off my immediate road map as the project I intended to use it for hasn't materialized. If I have the free time I'll re-open the PR. Apologies!