From 54119868c8a1b364e0c7c4874328cdd645f5a5bd Mon Sep 17 00:00:00 2001 From: Docker Library Bot Date: Thu, 10 Aug 2017 22:02:00 +0000 Subject: [PATCH] Run update.sh --- rust/README.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 rust/README.md diff --git a/rust/README.md b/rust/README.md new file mode 100644 index 000000000..a7c95d8c0 --- /dev/null +++ b/rust/README.md @@ -0,0 +1,91 @@ + + +# Supported tags and respective `Dockerfile` links + +- [`1.19.0-stretch`, `1-stretch`, `1.19-stretch`, `stretch`, `1.19.0`, `1`, `1.19`, `latest` (*1.19.0/stretch/Dockerfile*)](https://github.com/rust-lang-nursery/docker-rust/blob/01ce3e6230bc87557058a38b342f9e15aae3856c/1.19.0/stretch/Dockerfile) +- [`1.19.0-jessie`, `1-jessie`, `1.19-jessie`, `jessie` (*1.19.0/jessie/Dockerfile*)](https://github.com/rust-lang-nursery/docker-rust/blob/01ce3e6230bc87557058a38b342f9e15aae3856c/1.19.0/jessie/Dockerfile) + +# Quick reference + +- **Where to get help**: + [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://blog.docker.com/2016/11/introducing-docker-community-directory-docker-community-slack/), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker) + +- **Where to file issues**: + [https://github.com/rust-lang-nursery/docker-rust/issues](https://github.com/rust-lang-nursery/docker-rust/issues) + +- **Maintained by**: + [the Rust Project developers](https://github.com/rust-lang-nursery/docker-rust) + +- **Published image artifact details**: + [repo-info repo's `repos/rust/` directory](https://github.com/docker-library/repo-info/blob/master/repos/rust) ([history](https://github.com/docker-library/repo-info/commits/master/repos/rust)) + (image metadata, transfer size, etc) + +- **Image updates**: + [official-images PRs with label `library/rust`](https://github.com/docker-library/official-images/pulls?q=label%3Alibrary%2Frust) + [official-images repo's `library/rust` file](https://github.com/docker-library/official-images/blob/master/library/rust) ([history](https://github.com/docker-library/official-images/commits/master/library/rust)) + +- **Source of this description**: + [docs repo's `rust/` directory](https://github.com/docker-library/docs/tree/master/rust) ([history](https://github.com/docker-library/docs/commits/master/rust)) + +- **Supported Docker versions**: + [the latest release](https://github.com/docker/docker/releases/latest) (down to 1.6 on a best-effort basis) + +# What is Rust? + +Rust is a systems programming language sponsored by Mozilla Research. It is designed to be a "safe, concurrent, practical language", supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C++, but is designed for better memory safety while maintaining performance. + +> [wikipedia.org/wiki/Rust_(programming_language)](https://en.wikipedia.org/wiki/Rust_%28programming_language%29) + +![logo](https://raw.githubusercontent.com/docker-library/docs/a11c341c57de07fbccfed7b21ea92d4bc40130a2/rust/logo.png) + +# How to use this image + +## Start a Rust instance running your app + +The most straightforward way to use this image is to use a Rust container as both the build and runtime environment. In your `Dockerfile`, writing something along the lines of the following will compile and run your project: + +```dockerfile +FROM rust:1.19.0 + +WORKDIR /usr/src/myapp +COPY . . + +RUN cargo install + +CMD ["myapp"] +``` + +Then, build and run the Docker image: + +```console +$ docker build -t my-rust-app . +$ docker run -it --rm --name my-running-app my-rust-app +``` + +## Compile your app inside the Docker container + +There may be occasions where it is not appropriate to run your app inside a container. To compiler, but not run your app inside the Docker instance, you can write something like: + +```console +$ docker run --rm --user "$(id -u)":"$(id -g)" -v "$PWD":/usr/src/myapp -w /usr/src/myapp rust:1.19.0 cargo build --release +``` + +This will add your current directory, as a volume, to the container, set the working directory to the volume, and run the command `cargo build --release`. This tells Cargo, Rust's build system, to compile the crate in `myapp` and output the executable to `target/release/myapp`. + +# License + +View [license information](https://www.rust-lang.org/en-US/legal.html) for the software contained in this image.