agdb_server 0.12.4

Agnesoft Graph Database Server
FROM node:alpine AS builder_studio
WORKDIR /usr/src/agdb_studio
COPY . .
RUN npm i -g pnpm && pnpm i --frozen-lockfile && pnpm run build --filter agdb_studio

FROM rust:alpine AS builder_server
WORKDIR /usr/src/agdb_server
COPY . .
COPY --from=builder_studio /usr/src/agdb_studio/agdb_studio/app/dist /usr/src/agdb_server/agdb_studio/app/dist
RUN apk add --no-cache musl-dev
RUN AGDB_DOCKER_BUILD=true cargo build -r -p agdb_server --all-features

FROM alpine:latest
COPY --from=builder_server /usr/src/agdb_server/target/release/agdb_server /usr/local/bin/agdb_server
# adduser -D: disable password, -H: do not create home directory
RUN addgroup -g 1000 agdb && \
    adduser -D -H -u 1000 -G agdb agdb && \
    mkdir -p /agdb && \
    chown agdb:agdb /agdb
USER agdb
WORKDIR /agdb
CMD ["/usr/local/bin/agdb_server"]

EXPOSE 3000