feat: adds Docker files
This commit is contained in:
		
							parent
							
								
									bf3dbf8c1c
								
							
						
					
					
						commit
						dbd97f8666
					
				
							
								
								
									
										3
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					target
 | 
				
			||||||
 | 
					.git
 | 
				
			||||||
 | 
					.gitignore
 | 
				
			||||||
							
								
								
									
										25
									
								
								Dockerfile-auth
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Dockerfile-auth
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					FROM rust:1.80.0-alpine3.20 AS chef
 | 
				
			||||||
 | 
					USER root
 | 
				
			||||||
 | 
					# remove the line below when switching to >=rust:1.70.0. sparse mode is planned to be the default in Rust 1.70.0
 | 
				
			||||||
 | 
					# ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
 | 
				
			||||||
 | 
					RUN apk add --no-cache musl-dev & cargo install cargo-chef
 | 
				
			||||||
 | 
					WORKDIR /microservice-poc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM chef AS planner
 | 
				
			||||||
 | 
					COPY . .
 | 
				
			||||||
 | 
					RUN cargo chef prepare --recipe-path recipe.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM chef AS builder
 | 
				
			||||||
 | 
					COPY --from=planner /microservice-poc/recipe.json recipe.json
 | 
				
			||||||
 | 
					# Build dependencies - this is the caching Docker layer!
 | 
				
			||||||
 | 
					RUN cargo chef cook --release --recipe-path recipe.json
 | 
				
			||||||
 | 
					# Build application
 | 
				
			||||||
 | 
					RUN apk add --no-cache protoc
 | 
				
			||||||
 | 
					COPY . .
 | 
				
			||||||
 | 
					RUN cargo build --release --bin auth
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# We do not need the Rust toolchain to run the binary!
 | 
				
			||||||
 | 
					FROM debian:buster-slim AS runtime
 | 
				
			||||||
 | 
					WORKDIR /microservice-poc
 | 
				
			||||||
 | 
					COPY --from=builder /microservice-poc/target/release/auth /usr/local/bin
 | 
				
			||||||
 | 
					ENTRYPOINT ["/usr/local/bin/auth"]
 | 
				
			||||||
							
								
								
									
										26
									
								
								Dockerfile-health
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								Dockerfile-health
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					FROM rust:1.80.0-alpine3.20 AS chef
 | 
				
			||||||
 | 
					USER root
 | 
				
			||||||
 | 
					# remove the line below when switching to >=rust:1.70.0. sparse mode is planned to be the default in Rust 1.70.0
 | 
				
			||||||
 | 
					# ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
 | 
				
			||||||
 | 
					RUN apk add --no-cache musl-dev & cargo install cargo-chef
 | 
				
			||||||
 | 
					WORKDIR /microservice-project
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM chef AS planner
 | 
				
			||||||
 | 
					COPY . .
 | 
				
			||||||
 | 
					RUN cargo chef prepare --recipe-path recipe.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM chef AS builder
 | 
				
			||||||
 | 
					COPY --from=planner /microservice-project/recipe.json recipe.json
 | 
				
			||||||
 | 
					# Build dependencies - this is the caching Docker layer!
 | 
				
			||||||
 | 
					RUN cargo chef cook --release --recipe-path recipe.json
 | 
				
			||||||
 | 
					# Build application
 | 
				
			||||||
 | 
					RUN apk add --no-cache protoc
 | 
				
			||||||
 | 
					COPY . .
 | 
				
			||||||
 | 
					RUN cargo build --release --bin health-check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# We do not need the Rust toolchain to run the binary!
 | 
				
			||||||
 | 
					FROM debian:buster-slim AS runtime
 | 
				
			||||||
 | 
					WORKDIR /microservice-project
 | 
				
			||||||
 | 
					COPY --from=builder /microservice-project/target/release/health-check /usr/local/bin
 | 
				
			||||||
 | 
					ENV AUTH_SERVICE_HOST_NAME=auth
 | 
				
			||||||
 | 
					ENTRYPOINT ["/usr/local/bin/health-check"]
 | 
				
			||||||
							
								
								
									
										19
									
								
								docker-compose.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								docker-compose.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					version: "3.9"
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  health-check:
 | 
				
			||||||
 | 
					    image: itsscb/health-check
 | 
				
			||||||
 | 
					    build:
 | 
				
			||||||
 | 
					      context: .
 | 
				
			||||||
 | 
					      dockerfile: Dockerfile-health
 | 
				
			||||||
 | 
					    restart: "always"
 | 
				
			||||||
 | 
					    depends_on:
 | 
				
			||||||
 | 
					      auth:
 | 
				
			||||||
 | 
					        condition: service_started
 | 
				
			||||||
 | 
					  auth:
 | 
				
			||||||
 | 
					    image: itsscb/auth
 | 
				
			||||||
 | 
					    build:
 | 
				
			||||||
 | 
					      context: .
 | 
				
			||||||
 | 
					      dockerfile: Dockerfile-auth
 | 
				
			||||||
 | 
					    restart: "always"
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - "50051:50051"
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user