From 96fc10eb9f40cb65fa9b956bf136106ce00ead36 Mon Sep 17 00:00:00 2001
From: Erick Hitter <git-contrib@ethitter.com>
Date: Sat, 4 Apr 2020 18:07:29 -0700
Subject: [PATCH] Basic Dockerization

---
 .dockerignore |  2 ++
 Dockerfile    | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++
 index.js      |  8 +++++++-
 3 files changed, 65 insertions(+), 1 deletion(-)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..93f1361
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,2 @@
+node_modules
+npm-debug.log
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..c42a3e6
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,56 @@
+FROM node:12
+
+WORKDIR /usr/src/app
+
+RUN apt-get update \
+    && apt-get -y --no-install-recommends install \
+        gconf-service \
+        libasound2 \
+        libatk1.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 \
+        ca-certificates \
+        fonts-liberation \
+        libappindicator1 \
+        libnss3 \
+        lsb-release \
+        xdg-utils \
+        wget \
+    && apt-get clean \
+    && rm -rf /var/lib/apt/lists/*
+
+COPY package*.json ./
+
+RUN npm install
+
+COPY . .
+
+USER nobody
+
+CMD [ "node", "index.js" ]
diff --git a/index.js b/index.js
index ea26cd5..cd06bf1 100644
--- a/index.js
+++ b/index.js
@@ -32,7 +32,13 @@ async function sendSMS(item) {
 async function run() {
   console.log('');
   console.log(`Starting at ${moment().toISOString()}`);
-  const browser = await puppeteer.launch();
+  const browser = await puppeteer.launch(
+    {
+      args: [
+        '--no-sandbox'
+      ]
+    }
+  );
 
   const page = await browser.newPage();
 
-- 
GitLab