diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9d78f2a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +.git +.config +target/ +.gitignore +.gitmodules +*.md +cspell* +.editorconfig +.dockerignore +Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6d3c97c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +## Builder ## +FROM rust:1.80-alpine AS builder + +WORKDIR /usr/src/luciders +COPY . . + +# 32-bit musl-dev for indoc! macro dep. +RUN apk add --no-cache musl-dev +RUN cargo build --release + +## Runner ## +FROM alpine:3.20 AS runner + +RUN adduser -D -u 1000 lucidersuser +USER lucidersuser + +WORKDIR /home/lucidersuser/app +COPY --from=builder --chown=lucidersuser:lucidersuser /usr/src/luciders/target/release/luciders . +COPY --from=builder --chown=lucidersuser:lucidersuser /usr/src/luciders/vendor/lucide/icons ./vendor/lucide/icons + +EXPOSE 7878 + +CMD [ "./luciders" ]