mirror of
https://github.com/imjasonh/krust
synced 2026-07-18 06:56:13 +00:00
feat: Expand platform support to match Alpine's supported architectures
- Add support for linux/386 (i686-unknown-linux-musl) - Add support for linux/arm/v6 (arm-unknown-linux-musleabihf) - Add support for linux/ppc64le (powerpc64le-unknown-linux-musl) - Add support for linux/s390x (s390x-unknown-linux-musl) - Add support for linux/riscv64 (riscv64gc-unknown-linux-musl) - Update platform detection to include all new platforms - Add tests for all new platform mappings - Update documentation with installation instructions for all targets - Add CI job to test extended platform support - Update development setup docs to mention cargo-zigbuild for full platform support This allows krust to build images for all platforms supported by Alpine Linux, making it more versatile for multi-architecture container deployments. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
2517939b30
commit
1f730645c3
5 changed files with 145 additions and 3 deletions
55
README.md
55
README.md
|
|
@ -42,6 +42,32 @@ rustup target add aarch64-unknown-linux-musl
|
|||
|
||||
# For linux/arm/v7
|
||||
rustup target add armv7-unknown-linux-musleabihf
|
||||
|
||||
# For linux/arm/v6
|
||||
rustup target add arm-unknown-linux-musleabihf
|
||||
|
||||
# For linux/386
|
||||
rustup target add i686-unknown-linux-musl
|
||||
|
||||
# For linux/ppc64le
|
||||
rustup target add powerpc64le-unknown-linux-musl
|
||||
|
||||
# For linux/s390x
|
||||
rustup target add s390x-unknown-linux-musl
|
||||
|
||||
# For linux/riscv64
|
||||
rustup target add riscv64gc-unknown-linux-musl
|
||||
|
||||
# Or install all supported targets at once
|
||||
rustup target add \
|
||||
x86_64-unknown-linux-musl \
|
||||
aarch64-unknown-linux-musl \
|
||||
armv7-unknown-linux-musleabihf \
|
||||
arm-unknown-linux-musleabihf \
|
||||
i686-unknown-linux-musl \
|
||||
powerpc64le-unknown-linux-musl \
|
||||
s390x-unknown-linux-musl \
|
||||
riscv64gc-unknown-linux-musl
|
||||
```
|
||||
|
||||
#### macOS Cross-compilation Setup
|
||||
|
|
@ -52,6 +78,9 @@ On macOS, you'll need a cross-compilation toolchain:
|
|||
# Install musl cross-compilation tools
|
||||
brew install filosottile/musl-cross/musl-cross
|
||||
|
||||
# Note: The musl-cross formula typically only includes x86_64 and aarch64 toolchains.
|
||||
# For other architectures, you may need additional toolchains or use Docker/remote builders.
|
||||
|
||||
# Create a .cargo/config.toml in your project with:
|
||||
cat > .cargo/config.toml << 'EOF'
|
||||
[target.x86_64-unknown-linux-musl]
|
||||
|
|
@ -59,6 +88,11 @@ linker = "x86_64-linux-musl-gcc"
|
|||
|
||||
[target.aarch64-unknown-linux-musl]
|
||||
linker = "aarch64-linux-musl-gcc"
|
||||
|
||||
# For other architectures, you'll need to install the appropriate cross-compiler
|
||||
# or use cargo-zigbuild which can target all platforms:
|
||||
# cargo install cargo-zigbuild
|
||||
# Then build with: cargo zigbuild --target <target>
|
||||
EOF
|
||||
```
|
||||
|
||||
|
|
@ -125,6 +159,11 @@ krust build -- --features=prod
|
|||
- `linux/amd64` (x86_64-unknown-linux-musl)
|
||||
- `linux/arm64` (aarch64-unknown-linux-musl)
|
||||
- `linux/arm/v7` (armv7-unknown-linux-musleabihf)
|
||||
- `linux/arm/v6` (arm-unknown-linux-musleabihf)
|
||||
- `linux/386` (i686-unknown-linux-musl)
|
||||
- `linux/ppc64le` (powerpc64le-unknown-linux-musl)
|
||||
- `linux/s390x` (s390x-unknown-linux-musl)
|
||||
- `linux/riscv64` (riscv64gc-unknown-linux-musl)
|
||||
|
||||
### Multi-Architecture Images
|
||||
|
||||
|
|
@ -320,9 +359,21 @@ cd krust
|
|||
brew install messense/macos-cross-toolchains/x86_64-unknown-linux-musl
|
||||
brew install messense/macos-cross-toolchains/aarch64-unknown-linux-musl
|
||||
|
||||
# Install Rust targets
|
||||
# For full platform support, consider using cargo-zigbuild:
|
||||
cargo install cargo-zigbuild
|
||||
|
||||
# Install Rust targets (at minimum for tests)
|
||||
rustup target add x86_64-unknown-linux-musl
|
||||
rustup target add aarch64-unknown-linux-musl # Optional, for ARM64 support
|
||||
rustup target add aarch64-unknown-linux-musl
|
||||
|
||||
# For full platform support, add all targets:
|
||||
rustup target add \
|
||||
armv7-unknown-linux-musleabihf \
|
||||
arm-unknown-linux-musleabihf \
|
||||
i686-unknown-linux-musl \
|
||||
powerpc64le-unknown-linux-musl \
|
||||
s390x-unknown-linux-musl \
|
||||
riscv64gc-unknown-linux-musl
|
||||
|
||||
# Install pre-commit hooks
|
||||
pip install pre-commit
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue