oxyromon 0.23.0

Rusty ROM OrgaNizer
FROM alpine

WORKDIR /usr/src/oxyromon
COPY . .
# NOTE: The web UI build (Trunk) downloads prebuilt wasm-bindgen/wasm-opt tools
# that are compiled against glibc, so `gcompat` is installed to run them under
# musl.
RUN apk add --no-cache build-base curl gcompat musl-dev 7zip rustup && \
    rustup-init -y --target wasm32-unknown-unknown && \
    source /root/.cargo/env && \
    curl -fsSL https://github.com/trunk-rs/trunk/releases/download/v0.21.14/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf- -C /usr/local/bin && \
    cargo install \
    --features nod,server,sevenz \
    --root /usr \
    --path . && \
    cargo clean && \
    rm -rf /root/.cargo /root/.rustup /root/.cache /usr/local/bin/trunk /tmp/* && \
    apk del --no-cache build-base musl-dev rustup

WORKDIR /
RUN rm -rf /usr/src/oxyromon

ENV OXYROMON_DATA_DIRECTORY=/data \
    OXYROMON_ROM_DIRECTORY=/roms

VOLUME [ "/data", "/roms" ]

CMD ["oxyromon"]