feature(DOCKERFILE): create container

This commit is contained in:
Asif Bacchus 2021-01-04 00:49:07 -07:00
parent a9dfb7fb32
commit b4b7607813
4 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ContentModelUserStore">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="RIDER_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$/../.." />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -7,4 +7,7 @@
<inspection_tool class="SubjectLimit" enabled="true" level="ERROR" enabled_by_default="true" /> <inspection_tool class="SubjectLimit" enabled="true" level="ERROR" enabled_by_default="true" />
</profile> </profile>
</component> </component>
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project> </project>

48
Dockerfile Normal file
View File

@ -0,0 +1,48 @@
#
# nodejs with livereload
#
# allow dynamic build by specifying base image as build arg
ARG NODE_TAG="15-alpine3.12"
FROM node:${NODE_TAG}
# change user id of node user
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 install livereload
WORKDIR /usr/local/livereload
RUN apk --update --no-cache add \
tzdata \
tini \
&& npm install livereload
# create default volume in case user forgets to map one
VOLUME [ "/var/watch" ]
# expose port
EXPOSE 9999
# default environment variables
ENV TZ=Etc/UTC
ENV NODE_ENV=production
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV PATH=$PATH:/home/node/.npm-global/bin
ENV EXT="html,xml,css,scss,sass,less,js,jsx,ts,tsx,php,py"
ENV EEXT=""
ENV EXCLUDE=".git/,.svn/"
ENV DELAY=500
# run node via tini by default
USER node
ENTRYPOINT [ "/sbin/tini", "--" ]
CMD [ "livereload", "--port 9999", "--debug", "--exts $EXT", "--extraExts $EEXT", "--exclusions $EXCLUDE", "--wait $DELAY" ]
# set build timestamp and version labels
ARG BUILD_DATE
LABEL org.label-schema.version="0.1"
LABEL org.label-schema.build-date=${BUILD_DATE}
#EOF