Files

37 lines
1.1 KiB
Docker

FROM node:lts-alpine
# environment variables
ENV port=9000
ENV github_username=anuraghazra
# setup folder within the docker container with this app's files
WORKDIR /app
COPY ./api /app/api
COPY ./scripts /app/scripts
COPY ./src /app/src
COPY ./themes /app/themes
COPY ./express.js /app/express.js
COPY ./package.json /app/package.json
COPY ./package-lock.json /app/package-lock.json
# prepare script uses a dev-dependency, so remove it,
# move express from dev-dependency to regular dependency
# then finally install all non-dev dependencies
RUN npm pkg delete scripts.prepare \
&& npm pkg set dependencies.express="$(node -p "require('./package.json').devDependencies.express")" \
&& npm pkg delete devDependencies.express \
&& npm ci --omit=dev
# healthcheck
HEALTHCHECK --interval=60m \
--retries=3 \
--start-interval=1s \
--start-period=10s \
--timeout=5s \
CMD wget --no-verbose -O - --tries=1 "http://127.0.0.1:$port/api/?username=$github_username" | grep 'GitHub Stats' || exit 1
# start the app, on the supplied port
EXPOSE $port
CMD [ "node", "express.js" ]