mirror of
https://github.com/actualbudget/actual.git
synced 2026-04-28 18:40:34 -05:00
27 lines
920 B
Docker
27 lines
920 B
Docker
FROM alpine:3.17 as base
|
|
RUN apk add --no-cache nodejs yarn npm python3 openssl build-base
|
|
WORKDIR /app
|
|
ADD .yarn ./.yarn
|
|
ADD yarn.lock package.json .yarnrc.yml ./
|
|
RUN if [ "$(uname -m)" = "armv7l" ]; then yarn config set taskPoolConcurrency 2; yarn config set networkConcurrency 5; fi
|
|
RUN yarn workspaces focus --all --production
|
|
RUN if [ "$(uname -m)" = "armv7l" ]; then npm install bcrypt better-sqlite3 --build-from-source; fi
|
|
|
|
FROM alpine:3.17 as prod
|
|
RUN apk add --no-cache nodejs tini
|
|
|
|
ARG USERNAME=actual
|
|
ARG USER_UID=1001
|
|
ARG USER_GID=$USER_UID
|
|
RUN addgroup -S ${USERNAME} -g ${USER_GID} && adduser -S ${USERNAME} -G ${USERNAME} -u ${USER_UID}
|
|
RUN mkdir /data && chown -R ${USERNAME}:${USERNAME} /data
|
|
|
|
WORKDIR /app
|
|
COPY --from=base /app/node_modules /app/node_modules
|
|
ADD package.json app.js ./
|
|
ADD src ./src
|
|
ADD migrations ./migrations
|
|
ENTRYPOINT ["/sbin/tini","-g", "--"]
|
|
EXPOSE 5006
|
|
CMD ["node", "app.js"]
|