36 lines
1.2 KiB
Docker
36 lines
1.2 KiB
Docker
# Use Alpine as the base image
|
|
FROM node:22-alpine3.21 AS builder
|
|
|
|
# Set metadata (optional but good practice)
|
|
LABEL maintainer="you@example.com"
|
|
|
|
WORKDIR /build
|
|
# get all the deps
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
ca-certificates \
|
|
openjdk21-jdk \
|
|
git \
|
|
curl
|
|
#RUN curl -O https://download.clojure.org/install/linux-install-1.11.1.1435.sh && chmod +x linux-install-1.11.1.1435.sh && ./linux-install-1.11.1.1435.sh
|
|
RUN curl -LO https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh && chmod +x linux-install.sh && ./linux-install.sh
|
|
RUN git clone https://github.com/logseq/logseq.git && cd logseq && yarn install
|
|
#build db-sync
|
|
RUN cd logseq/deps/db-sync && yarn install && yarn build:node-adapter && yarn install --production
|
|
#copy to /logseq-sync for final image
|
|
RUN cd logseq/deps/db-sync && mkdir -p /logseq-sync/worker && mv worker/dist /logseq-sync/worker && mv node_modules package.json yarn.lock start.sh /logseq-sync
|
|
|
|
#final image
|
|
FROM node:22-alpine3.21
|
|
COPY --from=builder /logseq-sync /logseq-sync
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
curl
|
|
|
|
WORKDIR /logseq-sync
|
|
|
|
EXPOSE 8787
|
|
HEALTHCHECK CMD curl --fail http://localhost:8787/health || exit 1
|
|
|
|
# Default command
|
|
CMD ["bash", "start.sh"]
|