mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-24 05:06:28 +00:00
improve code for dockerfile (#256)
* improve code for dockerfile * Update Dockerfile Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * improve code for file name * improve code for dockerfile * fix --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Generated
+150
-97
@@ -455,7 +455,10 @@ dependencies = [
|
|||||||
"serde_repr",
|
"serde_repr",
|
||||||
"tokio",
|
"tokio",
|
||||||
"url",
|
"url",
|
||||||
"zbus 5.8.0",
|
"wayland-backend",
|
||||||
|
"wayland-client",
|
||||||
|
"wayland-protocols",
|
||||||
|
"zbus 5.9.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -512,7 +515,7 @@ dependencies = [
|
|||||||
"futures-lite",
|
"futures-lite",
|
||||||
"parking",
|
"parking",
|
||||||
"polling",
|
"polling",
|
||||||
"rustix 1.0.7",
|
"rustix 1.0.8",
|
||||||
"slab",
|
"slab",
|
||||||
"tracing",
|
"tracing",
|
||||||
"windows-sys 0.59.0",
|
"windows-sys 0.59.0",
|
||||||
@@ -544,7 +547,7 @@ dependencies = [
|
|||||||
"cfg-if",
|
"cfg-if",
|
||||||
"event-listener",
|
"event-listener",
|
||||||
"futures-lite",
|
"futures-lite",
|
||||||
"rustix 1.0.7",
|
"rustix 1.0.8",
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -571,7 +574,7 @@ dependencies = [
|
|||||||
"cfg-if",
|
"cfg-if",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-io",
|
"futures-io",
|
||||||
"rustix 1.0.7",
|
"rustix 1.0.8",
|
||||||
"signal-hook-registry",
|
"signal-hook-registry",
|
||||||
"slab",
|
"slab",
|
||||||
"windows-sys 0.59.0",
|
"windows-sys 0.59.0",
|
||||||
@@ -673,9 +676,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aws-credential-types"
|
name = "aws-credential-types"
|
||||||
version = "1.2.3"
|
version = "1.2.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "687bc16bc431a8533fe0097c7f0182874767f920989d7260950172ae8e3c4465"
|
checksum = "b68c2194a190e1efc999612792e25b1ab3abfefe4306494efaaabc25933c0cbe"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aws-smithy-async",
|
"aws-smithy-async",
|
||||||
"aws-smithy-runtime-api",
|
"aws-smithy-runtime-api",
|
||||||
@@ -708,9 +711,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aws-runtime"
|
name = "aws-runtime"
|
||||||
version = "1.5.8"
|
version = "1.5.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4f6c68419d8ba16d9a7463671593c54f81ba58cab466e9b759418da606dcc2e2"
|
checksum = "b2090e664216c78e766b6bac10fe74d2f451c02441d43484cd76ac9a295075f7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aws-credential-types",
|
"aws-credential-types",
|
||||||
"aws-sigv4",
|
"aws-sigv4",
|
||||||
@@ -733,9 +736,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aws-sdk-s3"
|
name = "aws-sdk-s3"
|
||||||
version = "1.96.0"
|
version = "1.98.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6e25d24de44b34dcdd5182ac4e4c6f07bcec2661c505acef94c0d293b65505fe"
|
checksum = "029e89cae7e628553643aecb3a3f054a0a0912ff0fd1f5d6a0b4fda421dce64b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aws-credential-types",
|
"aws-credential-types",
|
||||||
"aws-runtime",
|
"aws-runtime",
|
||||||
@@ -806,9 +809,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aws-smithy-checksums"
|
name = "aws-smithy-checksums"
|
||||||
version = "0.63.4"
|
version = "0.63.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "244f00666380d35c1c76b90f7b88a11935d11b84076ac22a4c014ea0939627af"
|
checksum = "5ab9472f7a8ec259ddb5681d2ef1cb1cf16c0411890063e67cdc7b62562cc496"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aws-smithy-http",
|
"aws-smithy-http",
|
||||||
"aws-smithy-types",
|
"aws-smithy-types",
|
||||||
@@ -826,9 +829,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aws-smithy-eventstream"
|
name = "aws-smithy-eventstream"
|
||||||
version = "0.60.9"
|
version = "0.60.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "338a3642c399c0a5d157648426110e199ca7fd1c689cc395676b81aa563700c4"
|
checksum = "604c7aec361252b8f1c871a7641d5e0ba3a7f5a586e51b66bc9510a5519594d9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aws-smithy-types",
|
"aws-smithy-types",
|
||||||
"bytes",
|
"bytes",
|
||||||
@@ -837,9 +840,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aws-smithy-http"
|
name = "aws-smithy-http"
|
||||||
version = "0.62.1"
|
version = "0.62.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "99335bec6cdc50a346fda1437f9fefe33abf8c99060739a546a16457f2862ca9"
|
checksum = "43c82ba4cab184ea61f6edaafc1072aad3c2a17dcf4c0fce19ac5694b90d8b5f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aws-smithy-eventstream",
|
"aws-smithy-eventstream",
|
||||||
"aws-smithy-runtime-api",
|
"aws-smithy-runtime-api",
|
||||||
@@ -865,7 +868,7 @@ dependencies = [
|
|||||||
"aws-smithy-async",
|
"aws-smithy-async",
|
||||||
"aws-smithy-runtime-api",
|
"aws-smithy-runtime-api",
|
||||||
"aws-smithy-types",
|
"aws-smithy-types",
|
||||||
"h2 0.3.26",
|
"h2 0.3.27",
|
||||||
"h2 0.4.11",
|
"h2 0.4.11",
|
||||||
"http 0.2.12",
|
"http 0.2.12",
|
||||||
"http 1.3.1",
|
"http 1.3.1",
|
||||||
@@ -1574,23 +1577,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "chrono-tz"
|
name = "chrono-tz"
|
||||||
version = "0.10.3"
|
version = "0.10.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "efdce149c370f133a071ca8ef6ea340b7b88748ab0810097a9e2976eaa34b4f3"
|
checksum = "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"chrono-tz-build",
|
"phf 0.12.1",
|
||||||
"phf 0.11.3",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "chrono-tz-build"
|
|
||||||
version = "0.4.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8f10f8c9340e31fc120ff885fcdb54a0b48e474bbd77cab557f0c30a3e569402"
|
|
||||||
dependencies = [
|
|
||||||
"parse-zoneinfo",
|
|
||||||
"phf_codegen 0.11.3",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1850,18 +1842,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "const-str"
|
name = "const-str"
|
||||||
version = "0.6.2"
|
version = "0.6.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9e991226a70654b49d34de5ed064885f0bef0348a8e70018b8ff1ac80aa984a2"
|
checksum = "041fbfcf8e7054df725fb9985297e92422cdc80fcf313665f5ca3d761bb63f4c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"const-str-proc-macro",
|
"const-str-proc-macro",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "const-str-proc-macro"
|
name = "const-str-proc-macro"
|
||||||
version = "0.6.2"
|
version = "0.6.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f0d1c4c3cb85e5856b34e829af0035d7154f8c2889b15bbf43c8a6c6786dcab5"
|
checksum = "f801882b7ecd4188f4bca0317f34e022d623590d85893d7024b18d14f2a3b40b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -2031,9 +2023,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crc32fast"
|
name = "crc32fast"
|
||||||
version = "1.4.2"
|
version = "1.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
|
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
@@ -3384,18 +3376,6 @@ version = "0.2.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
|
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "dispatch2"
|
|
||||||
version = "0.2.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1a0d569e003ff27784e0e14e4a594048698e0c0f0b66cabcb51511be55a7caa0"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags 2.9.1",
|
|
||||||
"block2 0.6.1",
|
|
||||||
"libc",
|
|
||||||
"objc2 0.6.1",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dispatch2"
|
name = "dispatch2"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
@@ -3403,6 +3383,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
|
checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.9.1",
|
"bitflags 2.9.1",
|
||||||
|
"block2 0.6.1",
|
||||||
|
"libc",
|
||||||
"objc2 0.6.1",
|
"objc2 0.6.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -3417,6 +3399,15 @@ dependencies = [
|
|||||||
"syn 2.0.104",
|
"syn 2.0.104",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "dlib"
|
||||||
|
version = "0.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
|
||||||
|
dependencies = [
|
||||||
|
"libloading 0.8.8",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dlopen2"
|
name = "dlopen2"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
@@ -3440,6 +3431,12 @@ dependencies = [
|
|||||||
"syn 2.0.104",
|
"syn 2.0.104",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "downcast-rs"
|
||||||
|
version = "1.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dpi"
|
name = "dpi"
|
||||||
version = "0.1.2"
|
version = "0.1.2"
|
||||||
@@ -4375,9 +4372,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "h2"
|
name = "h2"
|
||||||
version = "0.3.26"
|
version = "0.3.27"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
|
checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"fnv",
|
"fnv",
|
||||||
@@ -4623,7 +4620,7 @@ dependencies = [
|
|||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"h2 0.3.26",
|
"h2 0.3.27",
|
||||||
"http 0.2.12",
|
"http 0.2.12",
|
||||||
"http-body 0.4.6",
|
"http-body 0.4.6",
|
||||||
"httparse",
|
"httparse",
|
||||||
@@ -6212,7 +6209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
|
checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.9.1",
|
"bitflags 2.9.1",
|
||||||
"dispatch2 0.3.0",
|
"dispatch2",
|
||||||
"objc2 0.6.1",
|
"objc2 0.6.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -6611,15 +6608,6 @@ dependencies = [
|
|||||||
"zstd",
|
"zstd",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "parse-zoneinfo"
|
|
||||||
version = "0.3.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24"
|
|
||||||
dependencies = [
|
|
||||||
"regex",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "password-hash"
|
name = "password-hash"
|
||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
@@ -6728,11 +6716,11 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "phf"
|
name = "phf"
|
||||||
version = "0.11.3"
|
version = "0.12.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
|
checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"phf_shared 0.11.3",
|
"phf_shared 0.12.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -6755,16 +6743,6 @@ dependencies = [
|
|||||||
"phf_shared 0.10.0",
|
"phf_shared 0.10.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "phf_codegen"
|
|
||||||
version = "0.11.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
|
|
||||||
dependencies = [
|
|
||||||
"phf_generator 0.11.3",
|
|
||||||
"phf_shared 0.11.3",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "phf_generator"
|
name = "phf_generator"
|
||||||
version = "0.8.0"
|
version = "0.8.0"
|
||||||
@@ -6836,6 +6814,15 @@ dependencies = [
|
|||||||
"siphasher 1.0.1",
|
"siphasher 1.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "phf_shared"
|
||||||
|
version = "0.12.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981"
|
||||||
|
dependencies = [
|
||||||
|
"siphasher 1.0.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pin-project"
|
name = "pin-project"
|
||||||
version = "1.1.10"
|
version = "1.1.10"
|
||||||
@@ -6967,7 +6954,7 @@ dependencies = [
|
|||||||
"concurrent-queue",
|
"concurrent-queue",
|
||||||
"hermit-abi",
|
"hermit-abi",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
"rustix 1.0.7",
|
"rustix 1.0.8",
|
||||||
"tracing",
|
"tracing",
|
||||||
"windows-sys 0.59.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
@@ -7647,13 +7634,13 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rfd"
|
name = "rfd"
|
||||||
version = "0.15.3"
|
version = "0.15.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "80c844748fdc82aae252ee4594a89b6e7ebef1063de7951545564cbc4e57075d"
|
checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ashpd 0.11.0",
|
"ashpd 0.11.0",
|
||||||
"block2 0.6.1",
|
"block2 0.6.1",
|
||||||
"dispatch2 0.2.0",
|
"dispatch2",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"log",
|
"log",
|
||||||
"objc2 0.6.1",
|
"objc2 0.6.1",
|
||||||
@@ -8107,7 +8094,7 @@ dependencies = [
|
|||||||
"dirs",
|
"dirs",
|
||||||
"hex",
|
"hex",
|
||||||
"keyring",
|
"keyring",
|
||||||
"rfd 0.15.3",
|
"rfd 0.15.4",
|
||||||
"rust-embed",
|
"rust-embed",
|
||||||
"rust-i18n",
|
"rust-i18n",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -8443,15 +8430,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustix"
|
name = "rustix"
|
||||||
version = "1.0.7"
|
version = "1.0.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
|
checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.9.1",
|
"bitflags 2.9.1",
|
||||||
"errno",
|
"errno",
|
||||||
"libc",
|
"libc",
|
||||||
"linux-raw-sys 0.9.4",
|
"linux-raw-sys 0.9.4",
|
||||||
"windows-sys 0.59.0",
|
"windows-sys 0.60.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -8675,6 +8662,12 @@ dependencies = [
|
|||||||
"windows-sys 0.59.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "scoped-tls"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scopeguard"
|
name = "scopeguard"
|
||||||
version = "1.2.0"
|
version = "1.2.0"
|
||||||
@@ -9698,7 +9691,7 @@ dependencies = [
|
|||||||
"fastrand",
|
"fastrand",
|
||||||
"getrandom 0.3.3",
|
"getrandom 0.3.3",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rustix 1.0.7",
|
"rustix 1.0.8",
|
||||||
"windows-sys 0.59.0",
|
"windows-sys 0.59.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -10079,7 +10072,7 @@ dependencies = [
|
|||||||
"serde_spanned",
|
"serde_spanned",
|
||||||
"toml_datetime",
|
"toml_datetime",
|
||||||
"toml_write",
|
"toml_write",
|
||||||
"winnow 0.7.11",
|
"winnow 0.7.12",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -10769,6 +10762,66 @@ dependencies = [
|
|||||||
"web-sys",
|
"web-sys",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wayland-backend"
|
||||||
|
version = "0.3.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"downcast-rs",
|
||||||
|
"rustix 0.38.44",
|
||||||
|
"scoped-tls",
|
||||||
|
"smallvec",
|
||||||
|
"wayland-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wayland-client"
|
||||||
|
version = "0.31.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags 2.9.1",
|
||||||
|
"rustix 0.38.44",
|
||||||
|
"wayland-backend",
|
||||||
|
"wayland-scanner",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wayland-protocols"
|
||||||
|
version = "0.32.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags 2.9.1",
|
||||||
|
"wayland-backend",
|
||||||
|
"wayland-client",
|
||||||
|
"wayland-scanner",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wayland-scanner"
|
||||||
|
version = "0.31.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quick-xml 0.37.5",
|
||||||
|
"quote",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wayland-sys"
|
||||||
|
version = "0.31.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615"
|
||||||
|
dependencies = [
|
||||||
|
"dlib",
|
||||||
|
"log",
|
||||||
|
"pkg-config",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "web-sys"
|
name = "web-sys"
|
||||||
version = "0.3.77"
|
version = "0.3.77"
|
||||||
@@ -11440,9 +11493,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winnow"
|
name = "winnow"
|
||||||
version = "0.7.11"
|
version = "0.7.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd"
|
checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
@@ -11542,7 +11595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909"
|
checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"rustix 1.0.7",
|
"rustix 1.0.8",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -11641,9 +11694,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zbus"
|
name = "zbus"
|
||||||
version = "5.8.0"
|
version = "5.9.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "597f45e98bc7e6f0988276012797855613cd8269e23b5be62cc4e5d28b7e515d"
|
checksum = "4bb4f9a464286d42851d18a605f7193b8febaf5b0919d71c6399b7b26e5b0aad"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-broadcast",
|
"async-broadcast",
|
||||||
"async-recursion",
|
"async-recursion",
|
||||||
@@ -11661,8 +11714,8 @@ dependencies = [
|
|||||||
"tracing",
|
"tracing",
|
||||||
"uds_windows",
|
"uds_windows",
|
||||||
"windows-sys 0.59.0",
|
"windows-sys 0.59.0",
|
||||||
"winnow 0.7.11",
|
"winnow 0.7.12",
|
||||||
"zbus_macros 5.8.0",
|
"zbus_macros 5.9.0",
|
||||||
"zbus_names 4.2.0",
|
"zbus_names 4.2.0",
|
||||||
"zvariant 5.6.0",
|
"zvariant 5.6.0",
|
||||||
]
|
]
|
||||||
@@ -11682,9 +11735,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zbus_macros"
|
name = "zbus_macros"
|
||||||
version = "5.8.0"
|
version = "5.9.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e5c8e4e14dcdd9d97a98b189cd1220f30e8394ad271e8c987da84f73693862c2"
|
checksum = "ef9859f68ee0c4ee2e8cde84737c78e3f4c54f946f2a38645d0d4c7a95327659"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro-crate 3.3.0",
|
"proc-macro-crate 3.3.0",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@@ -11714,7 +11767,7 @@ checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"static_assertions",
|
"static_assertions",
|
||||||
"winnow 0.7.11",
|
"winnow 0.7.12",
|
||||||
"zvariant 5.6.0",
|
"zvariant 5.6.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -11906,7 +11959,7 @@ dependencies = [
|
|||||||
"enumflags2",
|
"enumflags2",
|
||||||
"serde",
|
"serde",
|
||||||
"url",
|
"url",
|
||||||
"winnow 0.7.11",
|
"winnow 0.7.12",
|
||||||
"zvariant_derive 5.6.0",
|
"zvariant_derive 5.6.0",
|
||||||
"zvariant_utils 3.2.0",
|
"zvariant_utils 3.2.0",
|
||||||
]
|
]
|
||||||
@@ -11959,5 +12012,5 @@ dependencies = [
|
|||||||
"serde",
|
"serde",
|
||||||
"static_assertions",
|
"static_assertions",
|
||||||
"syn 2.0.104",
|
"syn 2.0.104",
|
||||||
"winnow 0.7.11",
|
"winnow 0.7.12",
|
||||||
]
|
]
|
||||||
|
|||||||
+3
-3
@@ -108,8 +108,8 @@ cfg-if = "1.0.1"
|
|||||||
chacha20poly1305 = { version = "0.10.1" }
|
chacha20poly1305 = { version = "0.10.1" }
|
||||||
chrono = { version = "0.4.41", features = ["serde"] }
|
chrono = { version = "0.4.41", features = ["serde"] }
|
||||||
clap = { version = "4.5.41", features = ["derive", "env"] }
|
clap = { version = "4.5.41", features = ["derive", "env"] }
|
||||||
const-str = { version = "0.6.2", features = ["std", "proc"] }
|
const-str = { version = "0.6.3", features = ["std", "proc"] }
|
||||||
crc32fast = "1.4.2"
|
crc32fast = "1.5.0"
|
||||||
criterion = { version = "0.5", features = ["html_reports"] }
|
criterion = { version = "0.5", features = ["html_reports"] }
|
||||||
dashmap = "6.1.0"
|
dashmap = "6.1.0"
|
||||||
datafusion = "46.0.1"
|
datafusion = "46.0.1"
|
||||||
@@ -196,7 +196,7 @@ reqwest = { version = "0.12.22", default-features = false, features = [
|
|||||||
"json",
|
"json",
|
||||||
"blocking",
|
"blocking",
|
||||||
] }
|
] }
|
||||||
rfd = { version = "0.15.3", default-features = false, features = [
|
rfd = { version = "0.15.4", default-features = false, features = [
|
||||||
"xdg-portal",
|
"xdg-portal",
|
||||||
"tokio",
|
"tokio",
|
||||||
] }
|
] }
|
||||||
|
|||||||
+56
-83
@@ -1,121 +1,94 @@
|
|||||||
# Multi-stage build for RustFS production image
|
# Multi-stage build for RustFS production image
|
||||||
FROM alpine:latest AS build
|
|
||||||
|
|
||||||
# Build arguments - use TARGETPLATFORM for consistency with Dockerfile.source
|
# Build stage: Download and extract RustFS binary
|
||||||
|
FROM alpine:3.22 AS build
|
||||||
|
|
||||||
|
# Build arguments for platform and release
|
||||||
ARG TARGETPLATFORM
|
ARG TARGETPLATFORM
|
||||||
ARG BUILDPLATFORM
|
ARG BUILDPLATFORM
|
||||||
ARG RELEASE=latest
|
ARG RELEASE=latest
|
||||||
|
|
||||||
# Install dependencies for downloading and verifying binaries
|
# Install minimal dependencies for downloading and extracting
|
||||||
RUN apk add --no-cache \
|
RUN apk add --no-cache ca-certificates curl unzip
|
||||||
ca-certificates \
|
|
||||||
curl \
|
|
||||||
bash \
|
|
||||||
wget \
|
|
||||||
unzip \
|
|
||||||
jq
|
|
||||||
|
|
||||||
# Create build directory
|
# Create build directory
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
|
||||||
# Map TARGETPLATFORM to architecture format used in builds
|
# Map TARGETPLATFORM to architecture
|
||||||
RUN case "${TARGETPLATFORM}" in \
|
RUN case "${TARGETPLATFORM}" in \
|
||||||
"linux/amd64") ARCH="x86_64" ;; \
|
"linux/amd64") ARCH="x86_64" ;; \
|
||||||
"linux/arm64") ARCH="aarch64" ;; \
|
"linux/arm64") ARCH="aarch64" ;; \
|
||||||
*) echo "Unsupported platform: ${TARGETPLATFORM}" && exit 1 ;; \
|
*) echo "Unsupported platform: ${TARGETPLATFORM}" >&2 && exit 1 ;; \
|
||||||
esac && \
|
esac && \
|
||||||
echo "ARCH=${ARCH}" > /build/arch.env
|
echo "ARCH=${ARCH}" > /build/arch.env
|
||||||
|
|
||||||
# Download rustfs binary from dl.rustfs.com (release channel only)
|
# Download and extract RustFS binary
|
||||||
RUN . /build/arch.env && \
|
RUN . /build/arch.env && \
|
||||||
BASE_URL="https://dl.rustfs.com/artifacts/rustfs/release" && \
|
BASE_URL="https://dl.rustfs.com/artifacts/rustfs/release" && \
|
||||||
PLATFORM="linux" && \
|
PACKAGE_NAME="rustfs-linux-${ARCH}-${RELEASE}.zip" && \
|
||||||
if [ "${RELEASE}" = "latest" ]; then \
|
DOWNLOAD_URL="${BASE_URL}/${PACKAGE_NAME}" && \
|
||||||
# Download latest release version \
|
echo "Downloading ${PACKAGE_NAME} from ${DOWNLOAD_URL}" >&2 && \
|
||||||
PACKAGE_NAME="rustfs-${PLATFORM}-${ARCH}-latest.zip"; \
|
curl -f -L "${DOWNLOAD_URL}" -o rustfs.zip && \
|
||||||
DOWNLOAD_URL="${BASE_URL}/${PACKAGE_NAME}"; \
|
unzip rustfs.zip -d /build && \
|
||||||
echo "📥 Downloading latest release build: ${PACKAGE_NAME}"; \
|
|
||||||
else \
|
|
||||||
# Download specific release version \
|
|
||||||
PACKAGE_NAME="rustfs-${PLATFORM}-${ARCH}-v${RELEASE}.zip"; \
|
|
||||||
DOWNLOAD_URL="${BASE_URL}/${PACKAGE_NAME}"; \
|
|
||||||
echo "📥 Downloading specific release version: ${PACKAGE_NAME}"; \
|
|
||||||
fi && \
|
|
||||||
echo "🔗 Download URL: ${DOWNLOAD_URL}" && \
|
|
||||||
curl -f -L "${DOWNLOAD_URL}" -o /build/rustfs.zip && \
|
|
||||||
if [ ! -f /build/rustfs.zip ] || [ ! -s /build/rustfs.zip ]; then \
|
|
||||||
echo "❌ Failed to download binary package"; \
|
|
||||||
echo "💡 Make sure the package ${PACKAGE_NAME} exists"; \
|
|
||||||
echo "🔗 Check: ${DOWNLOAD_URL}"; \
|
|
||||||
exit 1; \
|
|
||||||
fi && \
|
|
||||||
unzip /build/rustfs.zip -d /build && \
|
|
||||||
chmod +x /build/rustfs && \
|
chmod +x /build/rustfs && \
|
||||||
rm /build/rustfs.zip && \
|
rm rustfs.zip || { echo "Failed to download or extract ${PACKAGE_NAME}" >&2; exit 1; }
|
||||||
echo "✅ Successfully downloaded and extracted rustfs binary"
|
|
||||||
|
|
||||||
# Runtime stage
|
# Runtime stage: Configure runtime environment
|
||||||
FROM alpine:latest
|
FROM alpine:3.22.1
|
||||||
|
|
||||||
# Set build arguments and labels
|
# Build arguments and labels
|
||||||
ARG RELEASE=latest
|
ARG RELEASE=latest
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
ARG VCS_REF
|
ARG VCS_REF
|
||||||
|
|
||||||
LABEL name="RustFS" \
|
LABEL name="RustFS" \
|
||||||
vendor="RustFS Team" \
|
vendor="RustFS Team" \
|
||||||
maintainer="RustFS Team <dev@rustfs.com>" \
|
maintainer="RustFS Team <dev@rustfs.com>" \
|
||||||
version="${RELEASE}" \
|
version="${RELEASE}" \
|
||||||
release="${RELEASE}" \
|
release="${RELEASE}" \
|
||||||
build-date="${BUILD_DATE}" \
|
build-date="${BUILD_DATE}" \
|
||||||
vcs-ref="${VCS_REF}" \
|
vcs-ref="${VCS_REF}" \
|
||||||
summary="RustFS is a high-performance distributed object storage system written in Rust, compatible with S3 API." \
|
summary="High-performance distributed object storage system compatible with S3 API" \
|
||||||
description="RustFS is a high-performance distributed object storage software built using Rust. It supports erasure coding storage, multi-tenant management, observability, and other enterprise-level features." \
|
description="RustFS is a distributed object storage system written in Rust, supporting erasure coding, multi-tenant management, and observability." \
|
||||||
url="https://rustfs.com" \
|
url="https://rustfs.com" \
|
||||||
license="Apache-2.0"
|
license="Apache-2.0"
|
||||||
|
|
||||||
# Install runtime dependencies
|
# Install runtime dependencies
|
||||||
RUN apk add --no-cache \
|
RUN echo "https://dl-cdn.alpinelinux.org/alpine/v3.20/community" >> /etc/apk/repositories && \
|
||||||
ca-certificates \
|
apk update && \
|
||||||
bash \
|
apk add --no-cache ca-certificates bash gosu && \
|
||||||
&& addgroup -g 1000 rustfs \
|
addgroup -g 1000 rustfs && \
|
||||||
&& adduser -u 1000 -G rustfs -s /bin/sh -D rustfs
|
adduser -u 1000 -G rustfs -s /bin/bash -D rustfs
|
||||||
|
|
||||||
# Environment variables
|
# Copy CA certificates and RustFS binary from build stage
|
||||||
ENV RUSTFS_ACCESS_KEY=rustfsadmin \
|
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||||
|
COPY --from=build /build/rustfs /usr/bin/rustfs
|
||||||
|
|
||||||
|
# Copy entry point script
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
# Set permissions
|
||||||
|
RUN chmod +x /usr/bin/rustfs /entrypoint.sh && \
|
||||||
|
mkdir -p /data /logs && \
|
||||||
|
chown rustfs:rustfs /data /logs && \
|
||||||
|
chmod 700 /data /logs
|
||||||
|
|
||||||
|
# Environment variables (credentials should be set via environment or secrets)
|
||||||
|
ENV RUSTFS_ADDRESS=":9000" \
|
||||||
|
RUSTFS_ACCESS_KEY=rustfsadmin \
|
||||||
RUSTFS_SECRET_KEY=rustfsadmin \
|
RUSTFS_SECRET_KEY=rustfsadmin \
|
||||||
RUSTFS_ADDRESS=":9000" \
|
|
||||||
RUSTFS_CONSOLE_ENABLE=true \
|
RUSTFS_CONSOLE_ENABLE=true \
|
||||||
RUSTFS_VOLUMES=/data \
|
RUSTFS_VOLUMES=/data \
|
||||||
RUST_LOG=warn \
|
RUST_LOG=warn \
|
||||||
# Directory where RustFS stores observability logs. Ensure this path exists and has appropriate permissions.
|
RUSTFS_OBS_LOG_DIRECTORY=/logs \
|
||||||
RUSTFS_OBS_LOG_DIRECTORY=/logs
|
RUSTFS_SINKS_FILE_PATH=/logs
|
||||||
|
|
||||||
# Set permissions for /usr/bin (similar to MinIO's approach)
|
|
||||||
RUN chmod -R 755 /usr/bin
|
|
||||||
|
|
||||||
# Copy CA certificates and binaries from build stage
|
|
||||||
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
|
||||||
COPY --from=build /build/rustfs /usr/bin/
|
|
||||||
|
|
||||||
# Set executable permissions
|
|
||||||
RUN chmod +x /usr/bin/rustfs
|
|
||||||
|
|
||||||
# Create data directory
|
|
||||||
RUN mkdir -p /data /logs && chown -R rustfs:rustfs /data /logs
|
|
||||||
|
|
||||||
# Switch to non-root user
|
|
||||||
USER rustfs
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /data
|
|
||||||
|
|
||||||
# Expose port
|
# Expose port
|
||||||
EXPOSE 9000
|
EXPOSE 9000
|
||||||
|
|
||||||
|
# Volumes for data and logs
|
||||||
|
VOLUME ["/data", "/logs"]
|
||||||
|
|
||||||
# Volume for data
|
# Set entry point
|
||||||
VOLUME ["/data"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
CMD ["/usr/bin/rustfs"]
|
||||||
# Set entrypoint
|
|
||||||
ENTRYPOINT ["/usr/bin/rustfs"]
|
|
||||||
@@ -108,14 +108,26 @@ pub const DEFAULT_CONSOLE_ADDRESS: &str = concat!(":", DEFAULT_CONSOLE_PORT);
|
|||||||
/// It is used to store the logs of the application.
|
/// It is used to store the logs of the application.
|
||||||
/// Default value: rustfs.log
|
/// Default value: rustfs.log
|
||||||
/// Environment variable: RUSTFS_OBSERVABILITY_LOG_FILENAME
|
/// Environment variable: RUSTFS_OBSERVABILITY_LOG_FILENAME
|
||||||
pub const DEFAULT_LOG_FILENAME: &str = "rustfs.log";
|
pub const DEFAULT_LOG_FILENAME: &str = "rustfs";
|
||||||
|
|
||||||
|
/// Default OBS log filename for rustfs
|
||||||
|
/// This is the default log filename for OBS.
|
||||||
|
/// It is used to store the logs of the application.
|
||||||
|
/// Default value: rustfs.log
|
||||||
|
pub const DEFAULT_OBS_LOG_FILENAME: &str = concat!(DEFAULT_LOG_FILENAME, ".log");
|
||||||
|
|
||||||
|
/// Default sink file log file for rustfs
|
||||||
|
/// This is the default sink file log file for rustfs.
|
||||||
|
/// It is used to store the logs of the application.
|
||||||
|
/// Default value: rustfs-sink.log
|
||||||
|
pub const DEFAULT_SINK_FILE_LOG_FILE: &str = concat!(DEFAULT_LOG_FILENAME, "-sink.log");
|
||||||
|
|
||||||
/// Default log directory for rustfs
|
/// Default log directory for rustfs
|
||||||
/// This is the default log directory for rustfs.
|
/// This is the default log directory for rustfs.
|
||||||
/// It is used to store the logs of the application.
|
/// It is used to store the logs of the application.
|
||||||
/// Default value: logs
|
/// Default value: logs
|
||||||
/// Environment variable: RUSTFS_OBSERVABILITY_LOG_DIRECTORY
|
/// Environment variable: RUSTFS_OBSERVABILITY_LOG_DIRECTORY
|
||||||
pub const DEFAULT_LOG_DIR: &str = "deploy/logs";
|
pub const DEFAULT_LOG_DIR: &str = "/logs";
|
||||||
|
|
||||||
/// Default log rotation size mb for rustfs
|
/// Default log rotation size mb for rustfs
|
||||||
/// This is the default log rotation size for rustfs.
|
/// This is the default log rotation size for rustfs.
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
use rustfs_config::{
|
use rustfs_config::{
|
||||||
APP_NAME, DEFAULT_LOG_DIR, DEFAULT_LOG_FILENAME, DEFAULT_LOG_KEEP_FILES, DEFAULT_LOG_LEVEL, DEFAULT_LOG_ROTATION_SIZE_MB,
|
APP_NAME, DEFAULT_LOG_DIR, DEFAULT_LOG_FILENAME, DEFAULT_LOG_KEEP_FILES, DEFAULT_LOG_LEVEL, DEFAULT_LOG_ROTATION_SIZE_MB,
|
||||||
DEFAULT_LOG_ROTATION_TIME, ENVIRONMENT, METER_INTERVAL, SAMPLE_RATIO, SERVICE_VERSION, USE_STDOUT,
|
DEFAULT_LOG_ROTATION_TIME, DEFAULT_OBS_LOG_FILENAME, DEFAULT_SINK_FILE_LOG_FILE, ENVIRONMENT, METER_INTERVAL, SAMPLE_RATIO,
|
||||||
|
SERVICE_VERSION, USE_STDOUT,
|
||||||
};
|
};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::env;
|
use std::env;
|
||||||
@@ -104,7 +105,7 @@ impl OtelConfig {
|
|||||||
log_filename: env::var("RUSTFS_OBS_LOG_FILENAME")
|
log_filename: env::var("RUSTFS_OBS_LOG_FILENAME")
|
||||||
.ok()
|
.ok()
|
||||||
.and_then(|v| v.parse().ok())
|
.and_then(|v| v.parse().ok())
|
||||||
.or(Some(DEFAULT_LOG_FILENAME.to_string())),
|
.or(Some(DEFAULT_OBS_LOG_FILENAME.to_string())),
|
||||||
log_rotation_size_mb: env::var("RUSTFS_OBS_LOG_ROTATION_SIZE_MB")
|
log_rotation_size_mb: env::var("RUSTFS_OBS_LOG_ROTATION_SIZE_MB")
|
||||||
.ok()
|
.ok()
|
||||||
.and_then(|v| v.parse().ok())
|
.and_then(|v| v.parse().ok())
|
||||||
@@ -210,16 +211,15 @@ pub struct FileSinkConfig {
|
|||||||
|
|
||||||
impl FileSinkConfig {
|
impl FileSinkConfig {
|
||||||
pub fn get_default_log_path() -> String {
|
pub fn get_default_log_path() -> String {
|
||||||
let temp_dir = env::temp_dir().join("rustfs");
|
let temp_dir = env::temp_dir().join(DEFAULT_LOG_FILENAME);
|
||||||
|
|
||||||
if let Err(e) = std::fs::create_dir_all(&temp_dir) {
|
if let Err(e) = std::fs::create_dir_all(&temp_dir) {
|
||||||
eprintln!("Failed to create log directory: {e}");
|
eprintln!("Failed to create log directory: {e}");
|
||||||
return "rustfs/rustfs.log".to_string();
|
return DEFAULT_LOG_DIR.to_string();
|
||||||
}
|
}
|
||||||
temp_dir
|
temp_dir
|
||||||
.join("rustfs.log")
|
.join(DEFAULT_SINK_FILE_LOG_FILE)
|
||||||
.to_str()
|
.to_str()
|
||||||
.unwrap_or("rustfs/rustfs.log")
|
.unwrap_or(DEFAULT_LOG_DIR)
|
||||||
.to_string()
|
.to_string()
|
||||||
}
|
}
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
|
|||||||
@@ -77,8 +77,7 @@ impl Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Asynchronous logging of unified log entries
|
/// Asynchronous logging of unified log entries
|
||||||
#[tracing::instrument(skip(self), fields(log_source = "logger"))]
|
#[tracing::instrument(skip_all, fields(log_source = "logger"))]
|
||||||
#[tracing::instrument(level = "error", skip_all)]
|
|
||||||
pub async fn log_entry(&self, entry: UnifiedLogEntry) -> Result<(), GlobalError> {
|
pub async fn log_entry(&self, entry: UnifiedLogEntry) -> Result<(), GlobalError> {
|
||||||
// Extract information for tracing based on entry type
|
// Extract information for tracing based on entry type
|
||||||
match &entry {
|
match &entry {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
use crate::{AppConfig, SinkConfig, UnifiedLogEntry};
|
use crate::{AppConfig, SinkConfig, UnifiedLogEntry};
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
|
use rustfs_config::DEFAULT_SINK_FILE_LOG_FILE;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
#[cfg(feature = "file")]
|
#[cfg(feature = "file")]
|
||||||
@@ -71,7 +72,7 @@ pub async fn create_sinks(config: &AppConfig) -> Vec<Arc<dyn Sink>> {
|
|||||||
SinkConfig::File(file_config) => {
|
SinkConfig::File(file_config) => {
|
||||||
tracing::debug!("FileSink: Using path: {}", file_config.path);
|
tracing::debug!("FileSink: Using path: {}", file_config.path);
|
||||||
match file::FileSink::new(
|
match file::FileSink::new(
|
||||||
file_config.path.clone(),
|
format!("{}/{}", file_config.path.clone(), DEFAULT_SINK_FILE_LOG_FILE),
|
||||||
file_config.buffer_size.unwrap_or(8192),
|
file_config.buffer_size.unwrap_or(8192),
|
||||||
file_config.flush_interval_ms.unwrap_or(1000),
|
file_config.flush_interval_ms.unwrap_or(1000),
|
||||||
file_config.flush_threshold.unwrap_or(100),
|
file_config.flush_threshold.unwrap_or(100),
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Function to adjust rustfs user/group to match mounted directory ownership
|
||||||
|
fix_permissions() {
|
||||||
|
local dir="$1"
|
||||||
|
local user="rustfs"
|
||||||
|
local group="rustfs"
|
||||||
|
|
||||||
|
# Skip if directory doesn't exist or isn't mounted
|
||||||
|
if [ ! -d "$dir" ]; then
|
||||||
|
echo "Directory $dir does not exist, creating it"
|
||||||
|
mkdir -p "$dir"
|
||||||
|
chown "$user:$group" "$dir"
|
||||||
|
chmod 700 "$dir"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get directory ownership
|
||||||
|
local dir_uid=$(stat -c %u "$dir")
|
||||||
|
local dir_gid=$(stat -c %g "$dir")
|
||||||
|
|
||||||
|
# If directory is owned by root or inaccessible, skip adjustment
|
||||||
|
if [ "$dir_uid" = "0" ] || [ "$dir_gid" = "0" ]; then
|
||||||
|
echo "Warning: Directory $dir is owned by root, skipping UID/GID adjustment"
|
||||||
|
chown "$user:$group" "$dir"
|
||||||
|
chmod 700 "$dir"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Adjust rustfs user/group to match directory ownership
|
||||||
|
if [ "$dir_uid" != "$(id -u $user)" ]; then
|
||||||
|
echo "Adjusting UID of $user to $dir_uid for $dir"
|
||||||
|
usermod -u "$dir_uid" "$user"
|
||||||
|
fi
|
||||||
|
if [ "$dir_gid" != "$(id -g $group)" ]; then
|
||||||
|
echo "Adjusting GID of $group to $dir_gid for $dir"
|
||||||
|
groupmod -g "$dir_gid" "$group"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure permissions are correct
|
||||||
|
chown "$user:$group" "$dir"
|
||||||
|
chmod 700 "$dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fix permissions for /data and /logs
|
||||||
|
fix_permissions "/data"
|
||||||
|
fix_permissions "/logs"
|
||||||
|
|
||||||
|
# Run RustFS as the rustfs user
|
||||||
|
exec gosu rustfs:rustfs "$@"
|
||||||
+1
-1
@@ -51,7 +51,7 @@ export RUSTFS_CONSOLE_ADDRESS=":9001"
|
|||||||
# export RUSTFS_TLS_PATH="./deploy/certs"
|
# export RUSTFS_TLS_PATH="./deploy/certs"
|
||||||
|
|
||||||
# 可观测性 相关配置信息
|
# 可观测性 相关配置信息
|
||||||
export RUSTFS_OBS_ENDPOINT=http://localhost:4317 # OpenTelemetry Collector 的地址
|
#export RUSTFS_OBS_ENDPOINT=http://localhost:4317 # OpenTelemetry Collector 的地址
|
||||||
#export RUSTFS_OBS_USE_STDOUT=false # 是否使用标准输出
|
#export RUSTFS_OBS_USE_STDOUT=false # 是否使用标准输出
|
||||||
#export RUSTFS_OBS_SAMPLE_RATIO=2.0 # 采样率,0.0-1.0之间,0.0表示不采样,1.0表示全部采样
|
#export RUSTFS_OBS_SAMPLE_RATIO=2.0 # 采样率,0.0-1.0之间,0.0表示不采样,1.0表示全部采样
|
||||||
#export RUSTFS_OBS_METER_INTERVAL=1 # 采样间隔,单位为秒
|
#export RUSTFS_OBS_METER_INTERVAL=1 # 采样间隔,单位为秒
|
||||||
|
|||||||
Reference in New Issue
Block a user