forked from Maurice/pastabble
37 lines
898 B
Docker
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" ]
|