Files
chore-chart/Dockerfile
2025-10-15 00:06:45 -05:00

51 lines
1.3 KiB
Docker

FROM node:lts-alpine AS base
FROM base AS build-env
WORKDIR /usr/src/app
RUN apk add --no-cache libwebp libwebp-tools libavif-apps
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run-script tsc && npm run-script build && \
npm ci --only=production && \
ln -sf /usr/share/fonts assets/ && \
chown -R node .
FROM base AS deploy
ARG version=develop
ARG githash=REVISION
ARG created=CREATED
LABEL org.opencontainers.image.title="chore-chart"
LABEL org.opencontainers.image.description="Front end for Grocy chore lists"
LABEL org.opencontainers.image.authors="Cory Sanin <corysanin@outlook.com>"
LABEL org.opencontainers.image.url="https://git.sanin.dev/corysanin/chore-chart"
LABEL org.opencontainers.image.documentation="https://git.sanin.dev/corysanin/chore-chart"
LABEL org.opencontainers.image.source="https://git.sanin.dev/corysanin/chore-chart"
LABEL org.opencontainers.image.licenses="MIT"
LABEL org.opencontainers.image.version="${version}"
LABEL org.opencontainers.image.revision="${githash}"
LABEL org.opencontainers.image.created="${created}"
HEALTHCHECK --timeout=3s \
CMD curl --fail http://localhost:8080/healthcheck || exit 1
EXPOSE 8080
WORKDIR /usr/src/app
RUN apk add --no-cache curl
COPY --from=build-env /usr/src/app /usr/src/app
USER node
CMD [ "node", "distribution/index.js"]