|  | @@ -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 -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`.
 |