forked from mirrored/github-readme-stats
37 lines
1.1 KiB
Docker
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" ]
|
|
|