37 lines
898 B
Docker

FROM node:22-alpine3.20 AS frontend-builder
WORKDIR /build
RUN corepack enable
COPY pastabble-frontend/ .
RUN pnpm i && pnpm build
FROM rust:alpine3.20 AS builder
WORKDIR /build
RUN apk add --no-cache musl-dev
COPY . ./
RUN apk --print-arch
RUN case "$(apk --print-arch)" in \
x86_64) cargo build --target x86_64-unknown-linux-musl --release; \
mv ./target/x86_64-unknown-linux-musl /release ;; \
aarch64) cargo build --target aarch64-unknown-linux-musl --release; \
mv ./target/aarch64-unknown-linux-musl /release ;; \
esac
FROM alpine:3.20
WORKDIR /app
RUN mkdir wwwroot data && \
adduser -D appuser && \
chown appuser:appuser data
# /* removes directory structure
COPY --from=builder /release/* /app
COPY ./about.html /app/about.html
COPY --from=frontend-builder /build/dist /app/wwwroot
ENV WWW_DIR /app/wwwroot
USER appuser
EXPOSE 8080
CMD [ "./pastabble" ]