You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since Docker Engine 25.0.1 PREvant stops working in some environments with following error when creating a application:
{
"type": "https://httpstatuses.com/500",
"status": 500,
"title": "Internal Server Error",
"detail": "Cannot interact with infrastructure: Docker Error: invalid type: null, expected a sequence at line 1 column 242"
}
Output of docker version:
Client: Docker Engine - Community
Version: 25.0.1
API version: 1.44
Go version: go1.21.6
Git commit: 29cf629
Built: Tue Jan 23 23:09:52 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 25.0.1
API version: 1.44 (minimum version 1.24)
Go version: go1.21.6
Git commit: 71fa3ab
Built: Tue Jan 23 23:09:52 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.27
GitCommit: a1496014c916f9e62104b33d1bb5bd03b0858e59
runc:
Version: 1.1.11
GitCommit: v1.1.11-0-g4bccb38
docker-init:
Version: 0.19.0
GitCommit: de40ad0
With RUST_LOG=trace reveals that the logging of this line seems to be executed but the network creating afterwards fails because there is no network created on the host and no other PREvant specific logs are revealed:
@schrieveslaach I did some digging around this and found the root cause.
The docker update has made a change to the structure of response of /networks where the config of IPAM is now represented as null if no value present. Previously this was [].
Subsequently, to store the Network details from /network - Shiplift uses struct NetworkDetails which has an internal struct called IPAM which has config of type Vec<HashMap<String,String>> : Ref https://docs.rs/shiplift/0.7.0/src/shiplift/rep.rs.html#265-269
Serde fails to deserialize this and throws the below error
As a hack we can just wrap an Option around the config and use the custom crate of shiplift as maintenance has been stopped for it. softprops/shiplift#321
A solution here would be to use https://crates.io/crates/bollard
Since Docker Engine 25.0.1 PREvant stops working in some environments with following error when creating a application:
Output of
docker version
:With
RUST_LOG=trace
reveals that the logging of this line seems to be executed but the network creating afterwards fails because there is no network created on the host and no other PREvant specific logs are revealed:The text was updated successfully, but these errors were encountered: