Я развертываю приложение Rust с Rocket.rs в контейнере Docker для Heroku.Каждый раз, когда я делаю одно маленькое изменение, мне нужно сдвинуть весь контейнер.Это потребовало повторной загрузки всех компонентов ржавчины (rustc, rust-std, Cargo и т. Д.), Повторной загрузки всех зависимостей и повторной загрузки слоев.В частности, существует один слой размером 1,02 ГБ, который отправляется каждые раз, что занимает около 30 минут.Каждый раз.Как можно избежать:
- Повторная загрузка документов rustc, rust-std, cargo и rust-docs каждый раз
- Повторная загрузка неизменных зависимостей каждый раз
- Повторное добавление слоя 1,02 ГБ каждый раз
Вот Гист со всеми моими соответствующими файлами: https://gist.github.com/vcapra1/0a857aac8f05277e65ea5d86e8e4e239
Кстати, я должен упомянуть, что мой коддовольно минимальный: (это единственный файл .rs)
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
use std::fs;
#[get("/")]
fn index() -> &'static str {
"Hello from Rust!"
}
fn main() {
rocket::ignite().mount("/", routes![index]).launch();
}