45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # Builder
 | |
| FROM --platform=linux/amd64 rust:1.72.1-buster as builder
 | |
| 
 | |
| WORKDIR /app
 | |
| 
 | |
| # Add extra build dependencies here
 | |
| RUN apt-get update && apt-get install -yqq \
 | |
|     cmake gcc-aarch64-linux-gnu  binutils-aarch64-linux-gnu 
 | |
| 
 | |
| COPY . .
 | |
| 
 | |
| RUN rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu 
 | |
| 
 | |
| # Remove `--features=stats` if you want to deploy without stats collection
 | |
| RUN cargo build --features=stats --release \
 | |
|     --target=x86_64-unknown-linux-gnu --target=aarch64-unknown-linux-gnu
 | |
| 
 | |
| # Runtime
 | |
| FROM debian:buster-slim
 | |
| 
 | |
| ARG TARGETPLATFORM
 | |
| ENV TARGETPLATFORM=$TARGETPLATFORM
 | |
| 
 | |
| # Add extra runtime dependencies here
 | |
| # RUN apt-get update && apt-get install -yqq --no-install-recommends \
 | |
| #     openssl ca-certificates && rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| # Copy spoticord binaries from builder to /tmp
 | |
| COPY --from=builder \
 | |
|     /app/target/x86_64-unknown-linux-gnu/release/spoticord /tmp/x86_64
 | |
| COPY --from=builder \
 | |
|     /app/target/aarch64-unknown-linux-gnu/release/spoticord /tmp/aarch64
 | |
| 
 | |
| # Copy appropiate binary for target arch from /tmp  
 | |
| RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
 | |
|         cp /tmp/x86_64 /usr/local/bin/spoticord; \
 | |
|     elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
 | |
|         cp /tmp/aarch64 /usr/local/bin/spoticord; \
 | |
|     fi
 | |
| 
 | |
| # Delete unused binaries
 | |
| RUN rm -rvf /tmp/x86_64 /tmp/aarch64
 | |
| 
 | |
| ENTRYPOINT [ "/usr/local/bin/spoticord" ]
 | 
