Compare commits
3 Commits
9ee212fcef
...
2c3bcf27d7
Author | SHA1 | Date | |
---|---|---|---|
2c3bcf27d7 | |||
ba7d33943e | |||
f30e22b333 |
@ -12,17 +12,14 @@ RUN deluser --remove-home node \
|
|||||||
&& adduser -G node -S -u ${NODE_UID} node
|
&& adduser -G node -S -u ${NODE_UID} node
|
||||||
|
|
||||||
# create default volumes in-case user forgets, expose default port
|
# create default volumes in-case user forgets, expose default port
|
||||||
VOLUME [ "/var/watch", "/var/certs" ]
|
VOLUME [ "/watch", "/certs" ]
|
||||||
EXPOSE 35729
|
EXPOSE 35729
|
||||||
|
|
||||||
# add tini, timezone support and create certificate directories
|
# add tini, timezone support and create certificate directories
|
||||||
RUN apk --update --no-cache add \
|
RUN apk --update --no-cache add \
|
||||||
tini \
|
tini \
|
||||||
tzdata \
|
tzdata \
|
||||||
openssl \
|
openssl
|
||||||
&& chown node:node /var/certs \
|
|
||||||
&& chmod 700 /var/certs \
|
|
||||||
&& chmod +r /var/watch
|
|
||||||
|
|
||||||
# labels
|
# labels
|
||||||
LABEL org.opencontainers.image.authors="Asif Bacchus <asif@asifbacchus.dev>"
|
LABEL org.opencontainers.image.authors="Asif Bacchus <asif@asifbacchus.dev>"
|
||||||
@ -42,12 +39,7 @@ 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
|
||||||
|
|
||||||
# copy scripts, cleanup permissions and install livereload npm
|
# install livereload npm as node user then switch back to root user
|
||||||
COPY [ "livereload.js", "/home/node/livereload.js" ]
|
|
||||||
COPY [ "entrypoint.sh", "/usr/local/bin/entrypoint.sh" ]
|
|
||||||
RUN chown node:node /home/node/livereload.js \
|
|
||||||
&& chmod 644 /home/node/livereload.js \
|
|
||||||
&& chmod 755 /usr/local/bin/entrypoint.sh
|
|
||||||
USER node
|
USER node
|
||||||
WORKDIR /home/node
|
WORKDIR /home/node
|
||||||
RUN mkdir -p .npm-global/bin .npm-global/lib \
|
RUN mkdir -p .npm-global/bin .npm-global/lib \
|
||||||
@ -55,16 +47,27 @@ RUN mkdir -p .npm-global/bin .npm-global/lib \
|
|||||||
&& npm config set update-notifier false \
|
&& npm config set update-notifier false \
|
||||||
&& npm install livereload --save
|
&& npm install livereload --save
|
||||||
|
|
||||||
# run entrypoint script by default
|
# copy scripts and fix-up all permissions
|
||||||
|
USER root
|
||||||
|
COPY [ "livereload.js", "/home/node/livereload.js" ]
|
||||||
|
COPY [ "entrypoint.sh", "/usr/local/bin/entrypoint.sh" ]
|
||||||
|
RUN chown node:node /home/node/livereload.js \
|
||||||
|
&& chmod 644 /home/node/livereload.js \
|
||||||
|
&& chmod 755 /usr/local/bin/entrypoint.sh
|
||||||
|
|
||||||
|
# switch to node user, run entrypoint script by default
|
||||||
|
USER node
|
||||||
|
WORKDIR /home/node
|
||||||
ENTRYPOINT [ "/sbin/tini", "--", "/usr/local/bin/entrypoint.sh" ]
|
ENTRYPOINT [ "/sbin/tini", "--", "/usr/local/bin/entrypoint.sh" ]
|
||||||
|
|
||||||
# set build timestamp and version labels
|
# set build timestamp and version labels
|
||||||
ARG INTERNAL_VERSION
|
# TODO: uncomment when done testing
|
||||||
ARG BUILD_DATE
|
#ARG INTERNAL_VERSION
|
||||||
LABEL org.opencontainers.image.version="16.5.0, 0.9.3"
|
#ARG BUILD_DATE
|
||||||
LABEL org.opencontainers.image.vendor="NODE.js, node-livereload"
|
#LABEL org.opencontainers.image.version="16.5.0, 0.9.3"
|
||||||
LABEL dev.asifbacchus.image.name="livereload-tls-npm"
|
#LABEL org.opencontainers.image.vendor="NODE.js, node-livereload"
|
||||||
LABEL dev.asifbacchus.image.version=${INTERNAL_VERSION}
|
#LABEL dev.asifbacchus.image.name="livereload-tls-npm"
|
||||||
LABEL org.opencontainers.image.created=${BUILD_DATE}
|
#LABEL dev.asifbacchus.image.version=${INTERNAL_VERSION}
|
||||||
|
#LABEL org.opencontainers.image.created=${BUILD_DATE}
|
||||||
|
|
||||||
#EOF
|
#EOF
|
||||||
|
@ -33,8 +33,9 @@ case "$1" in
|
|||||||
listen | server | run | start)
|
listen | server | run | start)
|
||||||
doServer=1
|
doServer=1
|
||||||
;;
|
;;
|
||||||
shell) ;;
|
shell)
|
||||||
|
doShell=1
|
||||||
|
;;
|
||||||
new-cert)
|
new-cert)
|
||||||
doCertNew=1
|
doCertNew=1
|
||||||
;;
|
;;
|
||||||
@ -47,20 +48,27 @@ export-cert)
|
|||||||
*)
|
*)
|
||||||
# invalid or unknown option
|
# invalid or unknown option
|
||||||
printf "\nUnknown action requested: %s\n" "$1"
|
printf "\nUnknown action requested: %s\n" "$1"
|
||||||
printf "Valid actions: [listen | server | run | start] | shell | new-cert | show-cert | export-cert"
|
printf "Valid actions: [listen | server | run | start] | shell | new-cert | show-cert | export-cert\n\n"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# action: run server
|
# action: run server
|
||||||
if [ "$doServer" -eq 1 ]; then
|
if [ "$doServer" -eq 1 ]; then
|
||||||
exec "node livereload.js"
|
exec node livereload.js
|
||||||
exit "$?"
|
exit "$?"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# action: drop to shell
|
# action: drop to shell
|
||||||
if [ "$doShell" -eq 1 ]; then
|
if [ "$doShell" -eq 1 ]; then
|
||||||
exec /bin/sh "$@"
|
if [ -z "$2" ]; then
|
||||||
|
printf "\nExecuting interactive shell:\n"
|
||||||
|
exec /bin/sh
|
||||||
|
else
|
||||||
|
shift
|
||||||
|
printf "\nExecuting shell: '%s'\n" "$*"
|
||||||
|
exec /bin/sh -c "$*"
|
||||||
|
fi
|
||||||
exit "$?"
|
exit "$?"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user