This repository has been archived by the owner on Aug 14, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 15
docs: Update readme #25
Open
krnowak
wants to merge
1
commit into
appc:master
Choose a base branch
from
krnowak:update-readme
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+33
−12
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,46 @@ | ||
# goaci | ||
# proj2aci | ||
|
||
`goaci` is a simple command-line tool to build go projects into ACIs which confirm to the [app container specification][appc-spec]. | ||
`proj2aci` is a command-line tool to build various projects into ACIs which conform to the [app container specification][appc-spec]. | ||
|
||
Currently `proj2aci` supports rather simple cases: | ||
|
||
- Go projects buildable with `go get` | ||
- Rather simpler CMake projects | ||
|
||
`proj2aci` project is probably going to be superseded by [acbuild] | ||
project. Also, the UI of the `proj2aci` application and the API of the | ||
`proj2aci` library are not stable. | ||
|
||
[appc-spec]: https://github.com/appc/spec | ||
[acbuild]: https://github.com/appc/acbuild | ||
|
||
## Usage | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Retaining a little bit of info on how it works would be nice. |
||
Use `goaci` as you would `go get`: | ||
### `proj2aci go` | ||
|
||
The simplest invocation of `proj2aci go` would be: `proj2aci go github.com/coreos/etcd` | ||
|
||
For additional parameters, please call `proj2aci go --help`. | ||
|
||
### `proj2aci cmake` | ||
|
||
The simplest invocation of `proj2aci go` would be: `proj2aci cmake github.com/cmake-stuff/project` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. s/go/cmake/ |
||
|
||
$ goaci github.com/coreos/etcd | ||
Wrote etcd.aci | ||
$ actool -debug validate etcd.aci | ||
etcd.aci: valid app container image | ||
For additional parameters, please call `proj2aci cmake --help`. | ||
|
||
`goaci` provides options for specifying assets, adding arguments for an application, selecting binary is going to be packaged in final ACI and so on. Use --help to read about them. | ||
### a library | ||
|
||
## How it works | ||
`github.com/appc/proj2aci/proj2aci` provides a `Builder` type which | ||
take `BuilderCustomizations` interface implementation. The `Builder` | ||
is doing all the heavy lifting, while `BuilderCustomizations` provide | ||
some specific bits for builder. The library provides | ||
`BuilderCustomizations` for `go` and `cmake` projects. A developer can | ||
provide another implementation of `BuilderCustomizations` for building | ||
a different kind of a project. | ||
|
||
`goaci` creates a temporary directory and uses it as a `GOPATH` (unless it is overridden with `--go-path` option); it then `go get`s the specified package and compiles it statically. | ||
Then it generates an image manifest (using mostly default values) and leverages the [appc/spec](https://github.com/appc/spec) libraries to construct an ACI. | ||
Besides the above, the library provides also some other useful | ||
functions and types for assets preparing or getting vcs info. | ||
|
||
## TODO | ||
|
||
Lots, check out https://github.com/appc/goaci/issues | ||
Lots, check out https://github.com/appc/proj2aci/issues |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is basically telling people "don't use this" - is that really the message we want to send? Does it not provide any value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see it as quite distinct from acbuild philosophically