Skip to content

write guide section on: productionising, containers and dev workflow #14

@clux

Description

@clux

There are many many many different ways of packaging rust applications into docker to make a nice workflow. Many of them have tons of annoying cache-caveats (some that only work on CI, some that only work locally).

I would like to have a good guide with some pros/cons discussions on deployment choices and that optimise for a few different metrics (parenthesised):

  • standardised rust image (readability)
  • standardised rust image as managed by CI providers like circleci (CI image locality)
  • above but with cargo-chef (CI cache time)
  • musl cross compilation (docker image size, less direct C dependencies)
  • arm cross compilation (cloud compute costs via graviton)

Most of these have some annoying side effects:

  • rust image -> slow iteration time locally and on CI
  • CI provided rust image -> faster on CI, but potential differences between local build and CI
  • cargo-chef -> large, inscrutable docker images, and still awkward for local builds
  • musl cross -> potential musl compat issues and static toolchain upgrade problems (C deps in image)
  • arm cross -> ??? need to know more ??? looks very new

Additionally it would be nice to also discuss some stuff that can (probably) be used with most of the above choices:

With this we can probably close kube-rs/kube#332

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions