#cargo-subcommand #rocket #tool

app cargo-rocket-docker

Cargo 子命令工具,用于将 Docker 镜像转换为 Rocket 项目,并使用 Alpine OS 进行构建/发布。

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 日

#405Cargo 插件

MIT 许可证

21KB
283

Cargo Rocket Docker

自动化的工具子命令,用于创建 Rocket 项目的 Docker 镜像,并使用 Alpine OS 进行构建/发布。

参考

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 创建,如果您想关注我,请访问 LinkedInGitHub :P。

依赖关系

~3–14MB
~143K SLoC