Merge pull request #977 from sfackler/rust
Add documentation for the rust image
This commit is contained in:
commit
06da6fe2ab
|
|
@ -0,0 +1 @@
|
|||
Rust is a systems programming language focused on safety, speed, and concurrency.
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# 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%%
|
||||
|
||||
# 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 %%IMAGE%%: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 %%IMAGE%%: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`.
|
||||
|
|
@ -0,0 +1 @@
|
|||
https://github.com/rust-lang-nursery/docker-rust
|
||||
|
|
@ -0,0 +1 @@
|
|||
View [license information](https://www.rust-lang.org/en-US/legal.html) for the software contained in this image.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
|
|
@ -0,0 +1 @@
|
|||
[the Rust Project developers](%%GITHUB-REPO%%)
|
||||
Loading…
Reference in New Issue