diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 3d83820e..7bf2fef0 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -21,7 +21,7 @@ jobs: - name: Login to GitHub registry run: echo ${{ secrets.CONTAINER_REGISTRY_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build lowlighter/metrics:master - run: docker build -t lowlighter/metrics:master -f source/app/docker/Dockerfile . + run: docker build -t lowlighter/metrics:master . - name: Publish lowlighter/metrics:master run: docker push ghcr.io/lowlighter/metrics:master diff --git a/Dockerfile b/Dockerfile index 78d6565d..3c48fd20 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,37 @@ # Base image -FROM ghcr.io/lowlighter/metrics:latest +FROM node:15-buster-slim # Copy repository COPY . /metrics +# Setup +RUN chmod +x /metrics/source/app/action/index.mjs \ + # Install latest chrome dev package, fonts to support major charsets and skip chromium download on puppeteer install + # Based on https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#running-puppeteer-in-docker + && apt-get update \ + && apt-get install -y wget gnupg ca-certificates libgconf-2-4 \ + && 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-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 \ + --no-install-recommends \ + && rm -rf /var/lib/apt/lists/* \ + # Install ruby to support linguist + # Based on https://github.com/github/linguist + && apt-get update \ + && apt-get install -y ruby-full \ + && apt-get install -y git g++ cmake pkg-config libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev ruby-dev \ + && gem install github-linguist \ + # Install python for node-gyp + && apt-get update \ + && apt-get install -y python3 \ + # Install node modules + && cd /metrics \ + && npm ci + +# Environment variables +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true +ENV PUPPETEER_BROWSER_PATH "google-chrome-stable" + # Execute GitHub action ENTRYPOINT node /metrics/source/app/action/index.mjs \ No newline at end of file diff --git a/source/docker/Dockerfile b/source/docker/Dockerfile deleted file mode 100644 index 733ac60d..00000000 --- a/source/docker/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -# This is the base image used by metrics, without metrics source files - -# Base image -FROM node:15-buster-slim - -# Copy package.json -COPY package.json /metrics/package.json -COPY package-lock.json /metrics/package-lock.json - -# Setup -RUN cd /metrics \ - # Install latest chrome dev package, fonts to support major charsets and skip chromium download on puppeteer install - # Based on https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#running-puppeteer-in-docker - && apt-get update \ - && apt-get install -y wget gnupg ca-certificates libgconf-2-4 \ - && 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-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 \ - --no-install-recommends \ - && rm -rf /var/lib/apt/lists/* \ - # Install ruby to support linguist - # Based on https://github.com/github/linguist - && apt-get update \ - && apt-get install -y ruby-full \ - && apt-get install -y git g++ cmake pkg-config libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev ruby-dev \ - && gem install github-linguist \ - # Install python for node-gyp - && apt-get update \ - && apt-get install -y python3 \ - # Install node modules - && npm ci - -# Environment variables -ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true -ENV PUPPETEER_BROWSER_PATH "google-chrome-stable"