13 个版本 (1 个稳定版)
1.0.0 | 2020 年 5 月 25 日 |
---|---|
0.5.2 | 2020 年 5 月 25 日 |
0.3.0 | 2020 年 5 月 25 日 |
0.2.1 | 2020 年 5 月 25 日 |
0.1.5 | 2020 年 5 月 24 日 |
#405 在 Cargo 插件
21KB
283 行
Cargo Rocket Docker
自动化的工具子命令,用于创建 Rocket 项目的 Docker 镜像,并使用 Alpine OS 进行构建/发布。
参考
- https://crates.io/crates/cargo-rocket-docker
- https://github.com/Gary-Ascuy/cargo-rocket-docker
- https://github.com/Gary-Ascuy/rust-rest-api
- https://hub.docker.com/repository/docker/garyascuy/cargo-rocket-example
Docker 镜像 - 在 MachOS 上测试
garyascuy/cargo-rocket-example:1.0.0
OS/ARCH: linux/amd64
SIZE: 4.31 MB # WOOOOOOOOWWW ~5Mb
LAST PUSHED: 12 minutes ago by garyascuy
设置
- Rust Nightly 版本
- Docker 最新版本
$ cargo install cargo-rocket-docker
升级
$ cargo install --force cargo-rocket-docker
用法
将以下部分添加到 Cargo.toml
文件中
[docker]
name = "app-bin-name"
version = "0.1.0"
maintainer = "Team Name <[email protected]>"
temp_folder = "./.tmp_docker"
tag = "garyascuy/cargo-rocket-example"
构建 Docker 镜像
$ cargo docker --build
推送 Docker 镜像
$ cargo docker --push
一揽子命令?输入以下命令
$ cargo docker --build --push --keep-temporary-files
一揽子命令还很长?这里还有更多替代方案
$ cargo docker --all
$ cargo docker -a
$ cargo docker -bpk # [B]uild, [P]ush, [K] Keep Docker Files
需要自定义吗?创建文件并自行维护 ಠ_ಠ
$ cargo docker --eject
不懂?通过示例学习
Rust Rest API 使用 Rust 和 Rocket 的基本 API
还有很多其他功能!以下是帮助信息的副本
USAGE:
cargo docker [FLAGS]
FLAGS:
-a, --all build and publish docker images
-b, --build build docker images
-e, --eject eject Dockerfile and .dockerignofe files
-h, --help Prints help information
-k, --keep-temporary-files Keep temporary files after build execution
-p, --push publish docker images
-V, --version Prints version information
配置属性
这里是一个完整示例 && 自定义标签 && Alpine 软件包
[docker]
name = "app-bin-name"
version = "0.1.0"
maintainer = "Team Name <[email protected]>"
temp_folder = "./.tmp_docker"
tag = "garyascuy/cargo-rocket-example"
custom_tags = [
"registry.gitlab.com/garyascuy:latest",
"registry.gitlab.com/garyascuy:1.0.0",
]
[docker.packages]
build = "acf-openssl"
image = "imagemagick second-pkg other-pkg"
描述
# Cargo Docker Settings
[docker]
# docker will copy bin from target/release/{app-bin-name}
name = "app-bin-name"
# Docker image version
version = "1.0.0"
# Responsible for image
maintainer = "Team Name <[email protected]>"
# Docker tag base, it will create tho images:
# account/back:{version} and account/back:latest
tag = "account/back"
# docker build will use these spesific tags to create the images and publish
custom_tags = [
"garyascuy/server:1.0.0",
"garyascuy/server:latest",
]
# Optional install extra packages in Alpine OS
[docker.packages]
# apk add acf-openssl in build image, development dependencies
build = "acf-openssl"
# add packages in final image, production dependencies
image = "imagemagick second-pkg other-pkg"
关于
由 Gary Ascuy 创建,如果您想关注我,请访问 LinkedIn 或 GitHub :P。
依赖关系
~3–14MB
~143K SLoC