struct(Dockerfile): align with previous customizations
This commit is contained in:
parent
9e9abe945f
commit
cc10ee2241
@ -1,36 +1,65 @@
|
|||||||
# LiveReload-npm server supporting SSL/TLS
|
# LiveReload-npm server supporting SSL/TLS
|
||||||
|
|
||||||
|
# allow dynamic building by specifying base image elements as build-args
|
||||||
ARG NODE_VERSION=16
|
ARG NODE_VERSION=16
|
||||||
ARG ALPINE_VERSION=3.14
|
ARG ALPINE_VERSION=3.14
|
||||||
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION}
|
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION}
|
||||||
|
|
||||||
|
# create new node user with set id from build-arg
|
||||||
|
ARG NODE_UID=9999
|
||||||
|
RUN deluser --remove-home node \
|
||||||
|
&& addgroup -g ${NODE_UID} -S node \
|
||||||
|
&& adduser -G node -S -u ${NODE_UID} node
|
||||||
|
|
||||||
|
# add tini, timezone support and create certificate directories
|
||||||
RUN apk --update --no-cache add \
|
RUN apk --update --no-cache add \
|
||||||
tini \
|
tini \
|
||||||
|
tzdata \
|
||||||
&& mkdir /certs \
|
&& mkdir /certs \
|
||||||
&& chown node:node /certs \
|
&& chown node:node /certs \
|
||||||
&& chmod 700 certs
|
&& chmod 700 certs
|
||||||
|
|
||||||
|
# labels
|
||||||
|
LABEL org.opencontainers.image.authors="Asif Bacchus <asif@asifbacchus.dev>"
|
||||||
|
LABEL org.opencontainers.image.title="livereload npm"
|
||||||
|
LABEL org.opencontainers.image.description="Dockerized npm livereload supporting TLS and running under limited user account. Environment variables allow specifying files to watch/exclude and notification delay."
|
||||||
|
LABEL org.opencontainers.image.url="https://git.asifbacchus.dev/ab-docker/livereload"
|
||||||
|
LABEL org.opencontainers.image.documentation="https://git.asifbacchus.dev/ab-docker/livereload/raw/branch/master/README.md"
|
||||||
|
LABEL org.opencontainers.image.source="https://git.asifbacchus.dev/ab-docker/livereload.git"
|
||||||
|
|
||||||
|
# create default volume in-case user forgets, expose default port
|
||||||
|
VOLUME [ "/var/watch" ]
|
||||||
|
EXPOSE 35729
|
||||||
|
|
||||||
|
# default environment variables
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
|
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
|
||||||
ENV PATH=/home/node/.npm-global/bin:$PATH
|
ENV PATH=/home/node/.npm-global/bin:$PATH
|
||||||
|
|
||||||
USER node
|
|
||||||
WORKDIR /home/node
|
|
||||||
RUN mkdir -p .npm-global/bin .npm-global/lib \
|
|
||||||
&& npm config set fun false \
|
|
||||||
&& npm config set update-notifier false \
|
|
||||||
&& npm install livereload --save
|
|
||||||
COPY [ "livereload.js", "livereload.js" ]
|
|
||||||
|
|
||||||
EXPOSE 35729
|
|
||||||
VOLUME [ "/var/watch" ]
|
|
||||||
|
|
||||||
ENV TZ="Etc/UTC"
|
ENV TZ="Etc/UTC"
|
||||||
ENV LR_PORT=35729
|
ENV LR_PORT=35729
|
||||||
ENV LR_EXTS="html,xml,css,js,jsx,ts,tsx,php,py"
|
ENV LR_EXTS="html,xml,css,js,jsx,ts,tsx,php,py"
|
||||||
ENV LR_EXCLUDE=".git/,.svn/,.vscode/,.idea/"
|
ENV LR_EXCLUDE=".git/,.svn/,.vscode/,.idea/"
|
||||||
ENV LR_DELAY=500
|
ENV LR_DELAY=500
|
||||||
|
|
||||||
|
# install livereload npm and copy server script
|
||||||
|
USER node
|
||||||
|
WORKDIR /home/node
|
||||||
|
RUN mkdir -p .npm-global/bin .npm-global/lib \
|
||||||
|
&& npm config set fund false \
|
||||||
|
&& npm config set update-notifier false \
|
||||||
|
&& npm install livereload --save
|
||||||
|
COPY [ "livereload.js", "livereload.js" ]
|
||||||
|
|
||||||
|
# run server via tini by default
|
||||||
ENTRYPOINT [ "/sbin/tini", "--" ]
|
ENTRYPOINT [ "/sbin/tini", "--" ]
|
||||||
CMD [ "node", "livereload.js" ]
|
CMD [ "node", "livereload.js" ]
|
||||||
|
|
||||||
|
# set build timestamp and version labels
|
||||||
|
ARG BUILD_DATE
|
||||||
|
LABEL org.opencontainers.image.version="16.5.0, 0.9.3"
|
||||||
|
LABEL org.opencontainers.image.vendor="NODE.js, node-livereload"
|
||||||
|
LABEL dev.asifbacchus.image.name="livereload-tls-npm"
|
||||||
|
LABEL dev.asifbacchus.image.version="2.0"
|
||||||
|
LABEL org.opencontainers.image.created=${BUILD_DATE}
|
||||||
|
|
||||||
#EOF
|
#EOF
|
||||||
|
Loading…
Reference in New Issue
Block a user