I have figured out the `.dockerignore` file so I don't have to do manual context size management like before. The Dockerfile now uses the Makefile to ensure image builds contain the same thing non-image builds would.
20 lines
515 B
Docker
20 lines
515 B
Docker
FROM rust:1.89 AS builder
|
|
|
|
RUN apt-get update
|
|
RUN apt-get install -y --no-install-recommends libasound2-dev libudev-dev
|
|
RUN rustup target add wasm32-unknown-unknown
|
|
RUN cargo install --locked wasm-bindgen-cli
|
|
|
|
COPY . .
|
|
|
|
RUN make -j
|
|
|
|
FROM busybox:musl
|
|
RUN mkdir -p /var/www
|
|
COPY --from=builder ./out/ /var/www
|
|
WORKDIR /var/www
|
|
|
|
# TODO: Make httpd accept interrupt signals so the container exits properly.
|
|
# (<ctrl>+c and `docker stop ...` don't work because Busybox doesn't answer)
|
|
CMD ["httpd", "-f", "-p", "8080"]
|