How to run a Puppeteer App/Script on a docker instance?

My goal is to have a Puppeteer Application deployed onto opeNode cloud hosting platform. The puppeteer application is to run once a day, using a scheduling system which they seem to provide, my problem is that locally the puppeteer script works fine, running it in a local docker container also works fine, but once deployed to the docker container on the cloud it just hangs and then times out.

I have reached out to support and they have said that I ned to listen on Port 80 otherwise I cannot make any HTTP requests.

const puppeteer = require("puppeteer");
const fetch = require("node-fetch");

const username = process.env.LOGINUSERNAME;
const password = process.env.PASSWORD;

// Boot up this bad boi
(async () => {
  // Fetch Quotes
  const res = await fetch("");
  let data2 = await res.json();

  // Data manipulation
  let randomNumber = Math.floor(Math.random() * data2.length) + 1;
  let textOfDay = data2[randomNumber].text;
  let authorOfDay = data2[randomNumber].author;
  let quoteOfDay = `"${textOfDay}" - ${authorOfDay}`;

  // Let the beast loose!
  const browser = await puppeteer.launch({
    args: ["--no-sandbox", "--disable-setuid-sandbox", "--headless", "--disable-dev-shm-usage"],
    //headless: false,
    executablePath: process.env.CHROMIUM_PATH,
  const page = await browser.newPage();
  await page.goto("");
  console.log("Navigated to")
  await page.waitForSelector("input");
  // In puppeteer - querySelectorAll is $$
  const inputs = await page.$$("input");
  await inputs[5].type(username);
  await inputs[6].type(password);
  // What URL are we currently on?

  console.log("Finding login button");
  const loginButton = await page.$$('[role="button"]');

  await Promise.all([loginButton[0].click(), page.waitForNavigation({ waitUntil: 'networkidle2' })])
  await page.waitForTimeout(4000).then(async () => {
    console.log("Waited 4 seconds!");
    // What URL are we currently on?
    await page.waitForSelector('[aria-label="Tweet text"]');
    const tweetInputField = await page.$$('[aria-label="Tweet text"]');

    await tweetInputField[0].type(quoteOfDay);
    //await tweetInputField[0].type("Hello World, Online");

    const tweetButton = await page.$$('[data-testid="tweetButtonInline"]');
  }).catch((error) => {
  await page.waitForTimeout(4000);
  await browser.close();

And here is what is currently in my docker file:

FROM node:lts-alpine

WORKDIR /opt/app


//daemon for cron jobs
RUN echo 'crond' > /

//Chrome and Puppeteer
ENV CHROME_BIN="/usr/bin/chromium-browser" 

ENV CHROMIUM_PATH="/usr/bin/chromium-browser"

RUN set -x 
    && apk update 
    && apk upgrade 
    && apk add --no-cache 

COPY package*.json ./

RUN npm install --production

# Bundle app source
COPY . .

CMD sh / && npm start

If there is any resources or extra information you could point me towards it would be much appreciated.
I assume that once the application has done its job, we want the node service to terminate?
This is my first time using Docker and Docker containers so extra information will be much appreciated.

Source: Docker Questions