
* Add multi-platform build support for linux/arm64 * Update README and simplify QEMU platforms * Update frontend dependencies and clippy lints (#33) * Only build ARM64 images on pushes to main
29 lines
789 B
Docker
29 lines
789 B
Docker
FROM rust:alpine as backend
|
|
WORKDIR /home/rust/src
|
|
RUN apk --no-cache add musl-dev openssl-dev
|
|
COPY . .
|
|
RUN cargo test --release
|
|
RUN cargo build --release
|
|
|
|
FROM amd64/rust:alpine as wasm
|
|
WORKDIR /home/rust/src
|
|
RUN apk --no-cache add curl musl-dev
|
|
RUN curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
|
COPY . .
|
|
RUN wasm-pack build --target web rustpad-wasm
|
|
|
|
FROM amd64/node:lts-alpine as frontend
|
|
WORKDIR /usr/src/app
|
|
COPY package.json package-lock.json ./
|
|
COPY --from=wasm /home/rust/src/rustpad-wasm/pkg rustpad-wasm/pkg
|
|
RUN npm ci
|
|
COPY . .
|
|
ARG GITHUB_SHA
|
|
ENV VITE_SHA=${GITHUB_SHA}
|
|
RUN npm run build
|
|
|
|
FROM scratch
|
|
COPY --from=frontend /usr/src/app/dist dist
|
|
COPY --from=backend /home/rust/src/target/release/rustpad-server .
|
|
USER 1000:1000
|
|
CMD [ "./rustpad-server" ]
|