Update README for new images

This commit is contained in:
Eric Kidd 2019-04-28 13:37:21 -04:00
parent 6a0705ca9d
commit 17db9d6272

View file

@ -2,6 +2,9 @@
[![Docker Image](https://img.shields.io/docker/pulls/ekidd/rust-musl-builder.svg?maxAge=2592000)](https://hub.docker.com/r/ekidd/rust-musl-builder/) [![Docker Image](https://img.shields.io/docker/pulls/ekidd/rust-musl-builder.svg?maxAge=2592000)](https://hub.docker.com/r/ekidd/rust-musl-builder/)
**NOTE:** The underlying build image is now running Ubuntu 18.04 and newer
versions of several libraries. Please report any problems!
Do you want to compile a completely static Rust binary with no external dependencies? If so, try: Do you want to compile a completely static Rust binary with no external dependencies? If so, try:
```sh ```sh
@ -11,13 +14,7 @@ rust-musl-builder cargo build --release
This command assumes that `$(pwd)` is readable and writable by uid 1000, gid 1000. At the moment, it doesn't attempt to cache libraries between builds, so this is best reserved for making final release builds. This command assumes that `$(pwd)` is readable and writable by uid 1000, gid 1000. At the moment, it doesn't attempt to cache libraries between builds, so this is best reserved for making final release builds.
To target ARM hard float (Raspberry Pi): For a more realistic example, see the `Dockerfile` for [examples/using-diesel](./examples/using-diesel).
```sh
rust-musl-builder cargo build --target=armv7-unknown-linux-musleabihf --release
```
Binaries will be written to `target/$TARGET_ARCHITECTURE/release`. By default it targets `x86_64-unknown-linux-musl` unless specified with `--target`.
## Deploying your Rust application ## Deploying your Rust application
@ -30,6 +27,7 @@ In general, we provide the following tagged Docker images:
- `latest`, `stable`: Current stable Rust, with OpenSSL 1.0 (for now). We - `latest`, `stable`: Current stable Rust, with OpenSSL 1.0 (for now). We
try to update this fairly rapidly after every new stable release, and try to update this fairly rapidly after every new stable release, and
after most point releases. after most point releases.
- `X.Y.Z`: Specific versions of stable Rust.
- `beta`: This usually gets updated every six weeks alongside the stable - `beta`: This usually gets updated every six weeks alongside the stable
release. It will usually not be updated for beta bugfix releases. release. It will usually not be updated for beta bugfix releases.
- `nightly-YYYY-MM-DD`: Specific nightly releases. These should almost - `nightly-YYYY-MM-DD`: Specific nightly releases. These should almost
@ -38,7 +36,8 @@ In general, we provide the following tagged Docker images:
compatibility with `tokio` or another popular library using unstable compatibility with `tokio` or another popular library using unstable
Rust, please file an issue. Rust, please file an issue.
- `stable-openssl11`: Current stable Rust, with OpenSSL 1.1. - `stable-openssl11`: Current stable Rust, with OpenSSL 1.1.
- `nightly-YYYY-MM-DD-openssl11`: Specific nightly releases with OpenSSL - `X.Y.Z-openssl11`: Specific versions of stable Rust, with OpenSSL 1.1.
- `nightly-YYYY-MM-DD-openssl11`: Specific nightly releases, with OpenSSL
1.1. 1.1.
At a minimum, each of these images should be able to At a minimum, each of these images should be able to
@ -186,6 +185,18 @@ If you're using Docker crates which require specific C libraries to be installed
If you need an especially common library, please feel free to submit a pull request adding it to the main `Dockerfile`! We'd like to support popular Rust crates out of the box. If you need an especially common library, please feel free to submit a pull request adding it to the main `Dockerfile`! We'd like to support popular Rust crates out of the box.
## ARM support (experimental)
To target ARM hard float (Raspberry Pi):
```sh
rust-musl-builder cargo build --target=armv7-unknown-linux-musleabihf --release
```
Binaries will be written to `target/$TARGET_ARCHITECTURE/release`. By default it targets `x86_64-unknown-linux-musl` unless specified with `--target`.
This is missing many of the libraries used by the `x86_64` build, and it should probably be split out of the base image and given its own tags.
## Development notes ## Development notes
After modifying the image, run `./test-image` to make sure that everything works.xs After modifying the image, run `./test-image` to make sure that everything works.xs