Skip to content

Instantly share code, notes, and snippets.

@cigzigwon
Created September 19, 2021 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cigzigwon/4e74dab4bfd2076f8e27a70fa005a600 to your computer and use it in GitHub Desktop.
Save cigzigwon/4e74dab4bfd2076f8e27a70fa005a600 to your computer and use it in GitHub Desktop.
FROM nodesource/nsolid:latest
LABEL maintainer "Joe McCann <joe@subprint.com>"
# Install our dependencies (libfontconfig for phantomjs)
RUN apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \
bzip2 \
ca-certificates \
curl \
git \
libfontconfig \
ttf-wqy-microhei \
ttf-wqy-zenhei \
software-properties-common \
gconf-service \
libasound2 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libc6 \
libcairo2 \
libcups2 \
libdbus-1-3 \
libexpat1 \
libfontconfig1 \
libgcc1 \
libgconf-2-4 \
libgdk-pixbuf2.0-0 \
libglib2.0-0 \
libgtk-3-0 \
libnspr4 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libstdc++6 \
libx11-6 \
libx11-xcb1 \
libxcb1 \
libxcomposite1 \
libxcursor1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxi6 \
libxrandr2 \
libxrender1 \
libxss1 \
libxtst6 \
fonts-liberation \
libappindicator1 \
libnss3 \
lsb-release \
xdg-utils \
wget \
&& rm -rf /var/lib/apt/lists/*
# should fix dir context issue w/builds (ALWAYS DO THIS!!!)
WORKDIR /build
# this is faster via npm run build-docker
COPY package.json ./package.json
RUN npm install --devDependencies \
&& npm cache verify
# Copy source over and create configs dir
# (THESE WOULD BE HAX!!!)
#RUN rm -rf /configs
#RUN mkdir -p /configs
COPY . .
RUN echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/userns.conf
RUN adduser --disabled-password --gecos '' dillinger
RUN chown -R dillinger:dillinger /build/public
USER dillinger
EXPOSE 8080
# (TYPICALLY BELONGS AT TOP OF FILE!!!)
ENV NODE_ENV=production
CMD ["npm", "start"]
@cigzigwon
Copy link
Author

WORKDIR is ensuring you don't pull the rug out from under your feet. You shouldn't mount resources into void and thusly don't need to remove and re-add stuff. Because that's nonsense!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment