9个不稳定版本 (3个破坏性更新)
使用旧的 Rust 2015
0.4.5 | 2017年8月25日 |
---|---|
0.4.4 | 2017年6月12日 |
0.4.3 | 2017年5月1日 |
0.4.2 | 2017年4月30日 |
0.1.0 | 2017年1月4日 |
#729 在 Cargo 插件
每月32次下载
27KB
658 行
cargo-sls-distribution
一个 Cargo 子命令,可以将二进制crate打包成符合SLS 规范的格式,以便于分发和执行。包布局旨在将不可变文件与可变状态和配置分离。
crate将包含一个简单的守护进程脚本、描述包内容的清单以及其他用户定义的内容
[service-name]-[service-version]/
deployment/
manifest.yml # simple package manifest
service/
bin/
[service-name] # crate executable
init.sh # daemonizing script
monitoring/
bin/
check.sh # monitoring script
var/ # application configuration and data
包将以名为 [service-name]-[service-version].sls.tgz
的压缩tar包形式生成。
使用方法
通过 Cargo 安装并作为子命令运行
$ cargo install cargo-sls-distribution
...
$ cargo sls-distribution
创建的包的路径将被打印到标准输出。
配置
配置在 Cargo.toml 的 package.metadata.sls-distribution
部分指定。
[package.metadata.sls-distribution]
# A Maven-style group name for the distribution.
# Required.
product-group = "com.foobar"
# A list of command line arguments to supply to the crate when running it.
# Defaults to an empty list.
args = ["server", "var/conf/server.yml"]
# A list of command line arguments to supply to the crate when checking its status.
# If not provided, no monitoring script will be generated.
check-args = ["check", "var/conf/server.yml"]
# If set, the service version will be derived from `git describe` rather than the Cargo package version.
# Defaults to false.
git-version = true
# A map of extended manifest attributes.
# Defaults to an empty map.
manifest-extensions = { key = "value" }
# An array of information about services that this depends on.
[[package.metadata.sls-distribution.product-dependencies]]
product-group = "com.foobar"
product-name = "my-service"
minimum-version = "1.1.0"
如果存在,将添加 deployment
、service
和 var
目录的内容到存档中,尽管这可以通过与 cargo package
相同的方式控制,通过标准 package.include
和 package.exclude
字段以及 .gitignore
文件
[package]
exclude = ["var/data/*"]
依赖项
~17–28MB
~533K SLoC