Update documentation for sqlx
We also add a `CHANGELOG.md` file.
This commit is contained in:
parent
727d912b3b
commit
089001b45a
47
CHANGELOG.md
Normal file
47
CHANGELOG.md
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). We do not use Semantic Versioning, because our images are tagged based on Rust releases. However, we try to maintain as much backwards compatibility as possible.
|
||||||
|
|
||||||
|
For maximum stablity, use images with tags like `ekidd/rust-musl-builder:1.46.0` or `ekidd/rust-musl-builder:nightly-2020-08-26`. These may occasionally be rebuilt, but only while they're "current", or possibly if they're recent and serious security are discovered in a library.
|
||||||
|
|
||||||
|
## 2020-09-04
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Added `examples/using-sqlx`.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Our OpenSSL configuration now uses environment variables prefixed with `X86_64_UNKNOWN_LINUX_MUSL_`. See [sfackler/rust-openssl#1337](https://github.com/sfackler/rust-openssl/issues/1337) and [launchbadge/sqlx#670](https://github.com/launchbadge/sqlx/issues/670) for background. This allows us to support static builds of `sqlx`, but it may break very old versions of `openssl-sys` (which were probably already broken when OpenSSL 1.0 reached its end-of-life).
|
||||||
|
|
||||||
|
## 2020-08-27
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update to `cargo deny` 0.7.3.
|
||||||
|
- Update to PostgreSQL 11.9.
|
||||||
|
|
||||||
|
## 2020-07-16
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update to `mdbook` version 0.4.1.
|
||||||
|
- Update to `cargo deny` 0.7.0.
|
||||||
|
|
||||||
|
## 2020-06-05
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Previously, `stable` included OpenSSL 1.0.2, and `stable-openssl11` included OpenSSL 1.1.1. However, OpenSSL 1.0.2 is **no longer receiving security fixes,** so the new tagging system will be:
|
||||||
|
- `stable`: OpenSSL 1.1.1 and the latest stable Rust.
|
||||||
|
- **DEPRECATED** `stable-openssl11`: OpenSSL 1.1 and Rust 1.42.0. This will no longer be updated. Use `stable` instead.
|
||||||
|
- **DEPRECATED** `1.42.0-openssl10` and `nightly-2020-03-12-openssl10`: OpenSSL 1.0.2. These will not be updated to newer Rust. You will still be able to build newer OpenSSL 1.0.2 images manually.
|
||||||
|
|
||||||
|
I hate to break compatibility with projects that require OpenSSL 1.0.2, but since it will receive no future security updates, I no longer feel comfortable supplying pre-built images.
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update to `cargo deny` 0.6.7.
|
||||||
|
- Update to PostgreSQL 11.8.
|
23
README.md
23
README.md
|
@ -2,11 +2,16 @@
|
||||||
|
|
||||||
[![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/)
|
||||||
|
|
||||||
[Source on GitHub](https://github.com/emk/rust-musl-builder)
|
- [Source on GitHub](https://github.com/emk/rust-musl-builder)
|
||||||
|
- [Changelog](https://github.com/emk/rust-musl-builder/blob/master/CHANGELOG.md)
|
||||||
|
|
||||||
|
**UPDATED:** The OpenSSL configuration has changed to support `sqlx`. This may break very old versions of the `openssl` crate. If this affects you, please file an issue. See the [Changelog](https://github.com/emk/rust-musl-builder/blob/master/CHANGELOG.md) for details.
|
||||||
|
|
||||||
## What is this?
|
## What is this?
|
||||||
|
|
||||||
Do you want to compile a completely static Rust binary with no external dependencies? If so, try:
|
This image allows you to build static Rust binaries using `diesel`, `sqlx` or `openssl`. These images can be distributed as single executable files with no dependencies, and they should work on any modern Linux system.
|
||||||
|
|
||||||
|
To try it, run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
alias rust-musl-builder='docker run --rm -it -v "$(pwd)":/home/rust/src ekidd/rust-musl-builder'
|
alias rust-musl-builder='docker run --rm -it -v "$(pwd)":/home/rust/src ekidd/rust-musl-builder'
|
||||||
|
@ -15,7 +20,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.
|
||||||
|
|
||||||
For a more realistic example, see the `Dockerfile` for [examples/using-diesel](./examples/using-diesel) [examples/using-sqlx](./examples/using-sqlx).
|
For a more realistic example, see the `Dockerfile`s for [examples/using-diesel](./examples/using-diesel) and [examples/using-sqlx](./examples/using-sqlx).
|
||||||
|
|
||||||
## Deploying your Rust application
|
## Deploying your Rust application
|
||||||
|
|
||||||
|
@ -42,16 +47,6 @@ compile [examples/using-diesel](./examples/using-diesel) and [examples/using-sql
|
||||||
|
|
||||||
[comp]: https://rust-lang.github.io/rustup-components-history/index.html
|
[comp]: https://rust-lang.github.io/rustup-components-history/index.html
|
||||||
|
|
||||||
### OpenSSL security note
|
|
||||||
|
|
||||||
Previously, `stable` included OpenSSL 1.0.2, and `stable-openssl11` included OpenSSL 1.1.1. However, OpenSSL 1.0.2 is **no longer receiving security fixes,** so the new tagging system will be:
|
|
||||||
|
|
||||||
- `stable`: OpenSSL 1.1.1 and the latest stable Rust.
|
|
||||||
- **DEPRECATED** `stable-openssl11`: OpenSSL 1.1 and Rust 1.42.0. This will no longer be updated. Use `stable` instead.
|
|
||||||
- **DEPRECATED** `1.42.0-openssl10` and `nightly-2020-03-12-openssl10`: OpenSSL 1.0.2. These will not be updated to newer Rust. You will still be able to build newer OpenSSL 1.0.2 images manually.
|
|
||||||
|
|
||||||
I hate to break compatibility with projects that require OpenSSL 1.0.2, but since it will receive no future security updates, I no longer feel comfortable supplying pre-built images.
|
|
||||||
|
|
||||||
## Caching builds
|
## Caching builds
|
||||||
|
|
||||||
You may be able to speed up build performance by adding the following `-v` commands to the `rust-musl-builder` alias:
|
You may be able to speed up build performance by adding the following `-v` commands to the `rust-musl-builder` alias:
|
||||||
|
@ -205,7 +200,7 @@ This is missing many of the libraries used by the `x86_64` build, and it should
|
||||||
|
|
||||||
## 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.
|
||||||
|
|
||||||
## Other ways to build portable Rust binaries
|
## Other ways to build portable Rust binaries
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue