https://gist.github.com/9ae090f255f97f254d9f33d7024e51c2
Неправильный докер
? Где ошибка, как правильно? Я попытался воспользоваться советом из https://t.me/rust_async/31054 И почти все крейты собираются, но вот actix_http странно себя ведёт
1. лок надо коммитить 2. есть баги карго которые надо обходить
Я не могу коммить лок - винда.
не понял связи - что винда?
В локе будут platform-specific крейты типа винапи.
Собирай локфайл в докере
Проблема в том, что у меня докер не собирается :D
ну без лока ты рискуешь что вчера собиралось а завтра нет - версии то не фиксированы. Собственно это вроде и есть твоя проблема
Проблема ещё и в том, что я разрабатываю не на той платформе, на которой запускаю. А в WSL2 разрабатывать будет неудобно из-за более низкой производительности файловой системы (по идее?).
Более низкой, если обращаешься к файлам на нтфс
ну я не думаю что ты столкнешься с проблемами производительности WSL. Но ты прав что я не вижу нормального решения в интернете. По-хорошему должно быть Cargo.%platformname%.lock
Либо через ENV указывать lock-file. Либо в томле.
Intellij не умеют в wsl2 для Rust, увы. Буду тогда думать, как сбилдить в докере без лока. Опробую ваш файл с изменениями под себя.
а нельзя просто с разных платформ их смерджить? это приводит к каким-то проблемам?
winapi на линукса тащить?
а в чем проблема лока? Я щас проверил он генерируте все что нужно. Например такой томл: [dependencies] cfg-if = "1.0.0" [target.'cfg(unix)'.dependencies] smallvec = "1.6.1" Генерирует # This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "smallvec" version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "untitled26" version = "0.1.0" dependencies = [ "cfg-if", "smallvec", ]
? Лок же только помогает выбрать версии, он не влияет на то, какие зависимости будут использоваться
ты не будешь тащить винапи на линух, он просто будет описан в локе. Использоватьяс тем не менее не будет.
о. не знал. я почему-то в голове держу package.json и его лока, с которым тоже не особо сталкивался. Спасибо за пояснения по поводу работы лока
Обсуждают сегодня