mirror of
https://github.com/sergi0g/cup.git
synced 2025-11-08 05:03:49 -05:00
44 lines
640 B
Docker
44 lines
640 B
Docker
### Build UI ###
|
|
FROM oven/bun:1-alpine AS web
|
|
|
|
# Copy package.json and lockfile from web
|
|
WORKDIR /web
|
|
COPY ./web/package.json ./web/bun.lock ./
|
|
|
|
# Install requirements
|
|
RUN bun install
|
|
|
|
# Copy web folder
|
|
COPY ./web .
|
|
|
|
# Build frontend
|
|
RUN bun run build
|
|
|
|
### Build Cup ###
|
|
FROM rust:1-alpine AS build
|
|
|
|
# Requirements
|
|
RUN apk add musl-dev
|
|
|
|
# Copy files
|
|
WORKDIR /cup
|
|
|
|
COPY Cargo.toml .
|
|
COPY Cargo.lock .
|
|
COPY ./src ./src
|
|
|
|
# Copy UI from web builder
|
|
COPY --from=web /web/dist src/static
|
|
|
|
# Build
|
|
RUN cargo build --release
|
|
|
|
### Main ###
|
|
FROM scratch
|
|
|
|
# Copy binary
|
|
COPY --from=build /cup/target/release/cup /cup
|
|
|
|
EXPOSE 8000
|
|
ENTRYPOINT ["/cup"]
|