summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile25
1 files changed, 23 insertions, 2 deletions
diff --git a/Dockerfile b/Dockerfile
index 7ec96ac..f0c3df9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,12 +1,33 @@
# Dockerfile to build bsu-fantom image
-FROM node:12
+FROM node:12-slim
+
+# Install latest chrome dev package
+# Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer
+# installs, work.
+RUN apt-get update \
+ && apt-get install -y wget gnupg \
+ && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
+ && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
+ && apt-get update \
+ && apt-get install -y google-chrome-stable fonts-freefont-ttf libxss1 \
+ --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY package*.json ./
-RUN npm install
+RUN npm install \
+ # Add user so we don't need --no-sandbox.
+ # same layer as npm install to keep re-chowned files from using up several hundred MBs more space
+ && groupadd -r pptruser && useradd -r -g pptruser -G audio,video pptruser \
+ && mkdir -p /home/pptruser/Downloads \
+ && chown -R pptruser:pptruser /home/pptruser \
+ && chown -R pptruser:pptruser /app/node_modules
+
+# Run everything after as non-privileged user.
+USER pptruser
COPY . .