76 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
| # syntax = docker/dockerfile:1.2
 | |
| # Build frontend files
 | |
| FROM node:16 AS fbuilder
 | |
| 
 | |
| WORKDIR /usr/src/app
 | |
| 
 | |
| COPY web/ ./
 | |
| 
 | |
| RUN yarn install && \
 | |
|     yarn build
 | |
| 
 | |
| 
 | |
| # Build backend & backend docs
 | |
| FROM rust:1.55-alpine AS builder
 | |
| 
 | |
| ARG DI_VER=1.2.5
 | |
| 
 | |
| # ENV OPENSSL_STATIC=1 \
 | |
| #     PQ_LIB_STATIC=1
 | |
| 
 | |
| RUN apk update && \
 | |
|     apk add --no-cache \
 | |
|         postgresql \
 | |
|         postgresql-dev \
 | |
|         openssl-dev \
 | |
|         build-base \
 | |
|         curl bash
 | |
| 
 | |
| WORKDIR /usr/src/app
 | |
| 
 | |
| # Build backend
 | |
| COPY .cargo/ ./.cargo
 | |
| COPY src/ ./src
 | |
| COPY migrations/ ./migrations
 | |
| COPY Cargo.toml Cargo.lock ./
 | |
| 
 | |
| RUN \
 | |
|     --mount=type=cache,target=/usr/src/app/out \
 | |
|     --mount=type=cache,target=/root/.cargo \
 | |
|     cargo build --release && \
 | |
|     mkdir bin && \
 | |
|     cp out/target/release/rbd bin && \
 | |
|     cargo doc --no-deps
 | |
| 
 | |
| # Build dumb-init
 | |
| RUN curl -sSL "https://github.com/Yelp/dumb-init/archive/refs/tags/v$DI_VER.tar.gz" | \
 | |
|     tar -xzf - && \
 | |
|     cd "dumb-init-$DI_VER" && \
 | |
|     make build && \
 | |
|     mv dumb-init ../bin
 | |
| 
 | |
| 
 | |
| FROM alpine:3.14.2
 | |
| 
 | |
| RUN apk add --no-cache openssl libpq postgresql-dev && \
 | |
|     mkdir -p /var/www/html
 | |
| 
 | |
| COPY --from=fbuilder /usr/src/app/dist /var/www/html/site
 | |
| # COPY --from=builder /usr/src/app/out/target/doc /var/www/html/doc
 | |
| COPY --from=builder /usr/src/app/bin/* /usr/bin/
 | |
| 
 | |
| WORKDIR /
 | |
| 
 | |
| ENTRYPOINT [ "dumb-init", "--" ]
 | |
| CMD [ "/usr/bin/rbd" ]
 | |
| 
 | |
| # RUN apt update && \
 | |
| #     apt install -y --no-install-recommends \
 | |
| #         musl-dev \
 | |
| #         musl-tools \
 | |
| #         libpq-dev \
 | |
| #         libssl-dev && \
 | |
| #     rustup target add x86_64-unknown-linux-musl && \
 | |
| #     mkdir "$PREFIX" && \
 | |
| #     echo "$PREFIX/lib" >> /etc/ld-musl-x86_64.path
 |