From 883c02e6d191166bcafa5c4f9eb2ab05bdb0e133 Mon Sep 17 00:00:00 2001 From: Andrei Ormanji Date: Wed, 15 Jan 2025 16:52:25 +0200 Subject: [PATCH 1/2] Update to bollard 0.18.1 --- Cargo.lock | 84 ++++++++++++++++++++++++++++++++++-------- Cargo.toml | 2 +- gateway/src/service.rs | 2 +- 3 files changed, 70 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c14afa422..dba842324 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -847,38 +847,48 @@ dependencies = [ [[package]] name = "bollard" -version = "0.15.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f03db470b3c0213c47e978da93200259a1eb4dae2e5512cba9955e2b540a6fc6" +checksum = "97ccca1260af6a459d75994ad5acc1651bcabcbdbc41467cc9786519ab854c30" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bollard-stubs", "bytes", "futures-core", "futures-util", "hex", - "http 0.2.12", - "hyper 0.14.32", + "home", + "http 1.2.0", + "http-body-util", + "hyper 1.5.2", + "hyper-named-pipe", + "hyper-rustls 0.27.5", + "hyper-util", "hyperlocal", "log", "pin-project-lite", + "rustls 0.23.20", + "rustls-native-certs 0.8.1", + "rustls-pemfile 2.2.0", + "rustls-pki-types", "serde", "serde_derive", "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 1.0.69", + "thiserror 2.0.10", "tokio", "tokio-util", + "tower-service", "url", "winapi", ] [[package]] name = "bollard-stubs" -version = "1.43.0-rc.2" +version = "1.47.1-rc.27.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58071e8fd9ec1e930efd28e3a90c1251015872a2ce49f81f36421b86466932e" +checksum = "3f179cfbddb6e77a5472703d4b30436bff32929c0aa8a9008ecf23d1d3cdd0da" dependencies = [ "serde", "serde_repr", @@ -3068,6 +3078,21 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-named-pipe" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" +dependencies = [ + "hex", + "hyper 1.5.2", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", + "winapi", +] + [[package]] name = "hyper-reverse-proxy" version = "0.5.2-dev" @@ -3090,7 +3115,7 @@ dependencies = [ "hyper 0.14.32", "log", "rustls 0.21.12", - "rustls-native-certs", + "rustls-native-certs 0.6.3", "tokio", "tokio-rustls 0.24.1", ] @@ -3146,15 +3171,17 @@ dependencies = [ [[package]] name = "hyperlocal" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fafdf7b2b2de7c9784f76e02c0935e65a8117ec3b768644379983ab333ac98c" +checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" dependencies = [ - "futures-util", "hex", - "hyper 0.14.32", - "pin-project", + "http-body-util", + "hyper 1.5.2", + "hyper-util", + "pin-project-lite", "tokio", + "tower-service", ] [[package]] @@ -4864,7 +4891,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls 0.21.12", - "rustls-native-certs", + "rustls-native-certs 0.6.3", "rustls-pemfile 1.0.4", "serde", "serde_json", @@ -5148,7 +5175,19 @@ dependencies = [ "openssl-probe", "rustls-pemfile 1.0.4", "schannel", - "security-framework", + "security-framework 2.11.1", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.2.0", ] [[package]] @@ -5302,6 +5341,19 @@ dependencies = [ "security-framework-sys", ] +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.7.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + [[package]] name = "security-framework-sys" version = "2.14.0" diff --git a/Cargo.toml b/Cargo.toml index eefe0360e..31b4233c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ anyhow = "1.0.66" async-trait = "0.1.58" axum = { version = "0.6.13", default-features = false } base64 = "0.21.5" -bollard = "0.15.0" +bollard = { version = "0.18.1", features = ["ssl_providerless"] } bytes = "1.3.0" cargo_metadata = "0.18.1" chrono = { version = "0.4.34", default-features = false } diff --git a/gateway/src/service.rs b/gateway/src/service.rs index 061e1abf4..4afb03e97 100644 --- a/gateway/src/service.rs +++ b/gateway/src/service.rs @@ -325,7 +325,7 @@ impl GatewayService { )); } - let docker = Docker::connect_with_unix(&args.docker_host, 60, API_DEFAULT_VERSION).unwrap(); + let docker = Docker::connect_with_socket(&args.docker_host, 60, API_DEFAULT_VERSION).unwrap(); let container_settings = ContainerSettings::builder().from_args(&args).await; From 2f7a0e1168c5a83ff24c7ce2104630f9f2c267ac Mon Sep 17 00:00:00 2001 From: Andrei Ormanji Date: Wed, 15 Jan 2025 16:53:04 +0200 Subject: [PATCH 2/2] consider all possible DOCKER_HOST value types, including tcp/http/https --- cargo-shuttle/src/provisioner_server.rs | 2 +- gateway/src/lib.rs | 2 +- gateway/src/service.rs | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cargo-shuttle/src/provisioner_server.rs b/cargo-shuttle/src/provisioner_server.rs index d5d461116..49eaf18d5 100644 --- a/cargo-shuttle/src/provisioner_server.rs +++ b/cargo-shuttle/src/provisioner_server.rs @@ -41,7 +41,7 @@ impl LocalProvisioner { // This only constructs the client and does not try to connect. // If the socket is not found, a "no such file" error will happen on the first request to Docker. Ok(Self { - docker: Docker::connect_with_local_defaults()?, + docker: Docker::connect_with_defaults()?, }) } diff --git a/gateway/src/lib.rs b/gateway/src/lib.rs index 6476f2aa4..e93a6d8d7 100644 --- a/gateway/src/lib.rs +++ b/gateway/src/lib.rs @@ -383,7 +383,7 @@ pub mod tests { impl World { pub async fn new() -> Self { - let docker = Docker::connect_with_local_defaults().unwrap(); + let docker = Docker::connect_with_defaults().unwrap(); docker .list_images::<&str>(None) diff --git a/gateway/src/service.rs b/gateway/src/service.rs index 4afb03e97..35edc52ab 100644 --- a/gateway/src/service.rs +++ b/gateway/src/service.rs @@ -325,7 +325,8 @@ impl GatewayService { )); } - let docker = Docker::connect_with_socket(&args.docker_host, 60, API_DEFAULT_VERSION).unwrap(); + let docker = + Docker::connect_with_socket(&args.docker_host, 60, API_DEFAULT_VERSION).unwrap(); let container_settings = ContainerSettings::builder().from_args(&args).await;