Skip to content

Commit 460bb2f

Browse files
committed
v1.65.0
1 parent aa14e6d commit 460bb2f

File tree

2 files changed

+84
-21
lines changed

2 files changed

+84
-21
lines changed

.cirrus.yml

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,20 +62,36 @@ release_docker_builder:
6262
env:
6363
DOCKER_USERNAME: ENCRYPTED[db65fd6fc1af68040964a27c82f2cbd202c849199038cfddc961a573d803a4f2793ba30eede0b6bcdb6bbf29f5c4f012]
6464
DOCKER_PASSWORD: ENCRYPTED[c201154ee561b3ca486047160db1c2ae77f766abf880feb5f57a10201374ba661ec7a796928ca8eb3a92aa007c684c37]
65-
login_script: docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD
66-
manifests_script: |
65+
login_script: |
66+
docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD
67+
push_latest_script: |
6768
docker manifest create \
6869
joseluisq/rust-linux-darwin-builder:latest \
6970
--amend joseluisq/rust-linux-darwin-builder:amd64 \
7071
--amend joseluisq/rust-linux-darwin-builder:arm64
71-
push_manifest_script: docker manifest push joseluisq/rust-linux-darwin-builder:latest
72+
docker manifest push joseluisq/rust-linux-darwin-builder:latest
73+
pull_latest_script: |
74+
docker pull joseluisq/rust-linux-darwin-builder:amd64
75+
docker pull joseluisq/rust-linux-darwin-builder:arm64
7276
push_aliases_script: |
7377
SEMVER=${CIRRUS_TAG##*v}
7478
SEMVER_MAJOR=${SEMVER%.*.*}
7579
SEMVER_MINOR=${SEMVER%.*}
76-
docker tag joseluisq/rust-linux-darwin-builder:latest joseluisq/rust-linux-darwin-builder:${SEMVER}
77-
docker tag joseluisq/rust-linux-darwin-builder:${SEMVER} joseluisq/rust-linux-darwin-builder:${SEMVER_MAJOR}
78-
docker tag joseluisq/rust-linux-darwin-builder:${SEMVER} joseluisq/rust-linux-darwin-builder:${SEMVER_MINOR}
79-
docker push joseluisq/rust-linux-darwin-builder:${SEMVER}
80-
docker push joseluisq/rust-linux-darwin-builder:${SEMVER_MAJOR}
81-
docker push joseluisq/rust-linux-darwin-builder:${SEMVER_MINOR}
80+
81+
docker manifest create \
82+
joseluisq/rust-linux-darwin-builder:${SEMVER} \
83+
--amend joseluisq/rust-linux-darwin-builder:amd64 \
84+
--amend joseluisq/rust-linux-darwin-builder:arm64
85+
docker manifest push joseluisq/rust-linux-darwin-builder:${SEMVER}
86+
87+
docker manifest create \
88+
joseluisq/rust-linux-darwin-builder:${SEMVER_MAJOR} \
89+
--amend joseluisq/rust-linux-darwin-builder:amd64 \
90+
--amend joseluisq/rust-linux-darwin-builder:arm64
91+
docker manifest push joseluisq/rust-linux-darwin-builder:${SEMVER_MAJOR}
92+
93+
docker manifest create \
94+
joseluisq/rust-linux-darwin-builder:${SEMVER_MINOR} \
95+
--amend joseluisq/rust-linux-darwin-builder:amd64 \
96+
--amend joseluisq/rust-linux-darwin-builder:arm64
97+
docker manifest push joseluisq/rust-linux-darwin-builder:${SEMVER_MINOR}

README.md

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,32 +26,79 @@ This is a __Linux Docker image__ based on [ekidd/rust-musl-builder](https://hub.
2626

2727
It contains essential tools for cross-compile [Rust](https://www.rust-lang.org/) projects such as __Linux__ static binaries via [musl-libc / musl-gcc](https://doc.rust-lang.org/edition-guide/rust-2018/platform-and-target-support/musl-support-for-fully-static-binaries.html) (`x86_64-unknown-linux-musl`) and __macOS__ binaries (`x86_64-apple-darwin`) via [osxcross](https://github.com/tpoechtrager/osxcross) just using the same Linux image.
2828

29+
The Docker image is [multi-arch](https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/) (`amd64` and `arm64`) so you can use them in native environments.
30+
Also, it is possible to cross-compile Linux or Darwin apps to `arm64` from the `x86_64` Docker image variant.
31+
2932
## Usage
3033

3134
### Compiling an application inside a Docker container
3235

3336
By default, the working directory is `/root/src`.
3437

38+
### x86_64 (amd64)
39+
40+
Below are the default toolchains included in the Docker image.
41+
3542
#### x86_64-unknown-linux-musl
3643

3744
```sh
3845
docker run --rm \
3946
--volume "${PWD}/sample":/root/src \
4047
--workdir /root/src \
41-
joseluisq/rust-linux-darwin-builder:1.64.0 \
42-
sh -c "cargo build --release"
48+
joseluisq/rust-linux-darwin-builder:1.65.0 \
49+
sh -c "cargo build --release --target x86_64-unknown-linux-musl"
4350
```
4451

45-
*Note that `x86_64-unknown-linux-gnu` is also available.*
52+
#### x86_64-unknown-linux-gnu
53+
54+
```sh
55+
docker run --rm \
56+
--volume "${PWD}/sample":/root/src \
57+
--workdir /root/src \
58+
joseluisq/rust-linux-darwin-builder:1.65.0 \
59+
sh -c "cargo build --release --target x86_64-unknown-linux-gnu"
60+
```
4661

4762
#### x86_64-apple-darwin
4863

4964
```sh
5065
docker run --rm \
5166
--volume "${PWD}/sample":/root/src \
5267
--workdir /root/src \
53-
joseluisq/rust-linux-darwin-builder:1.64.0 \
54-
sh -c "cargo build --release --target x86_64-apple-darwin"
68+
joseluisq/rust-linux-darwin-builder:1.65.0 \
69+
sh -c "cargo build --release --target x86_64-apple-darwin"
70+
```
71+
72+
### aarch64 (arm64)
73+
74+
#### aarch64-unknown-linux-gnu
75+
76+
```sh
77+
docker run --rm \
78+
--volume "${PWD}/sample":/root/src \
79+
--workdir /root/src \
80+
joseluisq/rust-linux-darwin-builder:1.65.0 \
81+
sh -c "cargo build --release --target aarch64-unknown-linux-gnu"
82+
```
83+
84+
#### aarch64-unknown-linux-musl
85+
86+
```sh
87+
docker run --rm \
88+
--volume "${PWD}/sample":/root/src \
89+
--workdir /root/src \
90+
joseluisq/rust-linux-darwin-builder:1.65.0 \
91+
sh -c "cargo build --release --target aarch64-unknown-linux-musl"
92+
```
93+
94+
#### aarch64-apple-darwin
95+
96+
```sh
97+
docker run --rm \
98+
--volume "${PWD}/sample":/root/src \
99+
--workdir /root/src \
100+
joseluisq/rust-linux-darwin-builder:1.65.0 \
101+
sh -c "cargo build --release --target aarch64-apple-darwin"
55102
```
56103

57104
### Cargo Home advice
@@ -63,7 +110,7 @@ It's known that the [`CARGO_HOME`](https://doc.rust-lang.org/cargo/guide/cargo-h
63110
You can also use the image as a base for your Dockerfile:
64111

65112
```Dockerfile
66-
FROM joseluisq/rust-linux-darwin-builder:1.64.0
113+
FROM joseluisq/rust-linux-darwin-builder:1.65.0
67114
```
68115

69116
### OSXCross
@@ -106,7 +153,7 @@ compile:
106153
@docker run --rm -it \
107154
-v $(PWD):/drone/src \
108155
-w /drone/src \
109-
joseluisq/rust-linux-darwin-builder:1.64.0 \
156+
joseluisq/rust-linux-darwin-builder:1.65.0 \
110157
make cross-compile
111158
.PHONY: compile
112159

@@ -131,13 +178,13 @@ Just run the makefile `compile` target, then you will see two release binaries `
131178
make compile
132179
# 1. Cross compiling example...
133180

134-
# rustc 1.64.0 (a55dd71d5 2022-09-19)
181+
# rustc 1.65.0 (897e37553 2022-11-02)
135182
# binary: rustc
136-
# commit-hash: a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52
137-
# commit-date: 2022-09-19
183+
# commit-hash: 897e37553bba8b42751c67658967889d11ecd120
184+
# commit-date: 2022-11-02
138185
# host: x86_64-unknown-linux-gnu
139-
# release: 1.64.0
140-
# LLVM version: 14.0.6
186+
# release: 1.65.0
187+
# LLVM version: 15.0.0
141188

142189
# 2. Compiling application (linux-musl x86_64)...
143190
# Finished release [optimized] target(s) in 0.01s

0 commit comments

Comments
 (0)