commit 8e00735d0a3b501e5351703d2e8e6d087546b9f1 Author: Philipp Kunz Date: Thu Jun 16 15:40:14 2022 +0200 fix(core): update diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..bbdd008 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,76 @@ +# gitzone docker +image: hosttoday/ht-docker-dbase:npmci +services: + - docker:dind + +stages: + - buildAndTest + - triggerPagesVerify + +before_script: + - yarn global add npmci + - npmci docker login + +buildTest: + stage: buildAndTest + script: + - npmci docker build + - npmci docker test + except: + - tags + - triggers + tags: + - lossless + - priv + +buildTestRelase: + stage: buildAndTest + script: + - npmci docker build + - npmci docker test + - npmci docker push registry.gitlab.com test + - npmci docker push registry.gitlab.com + - npmci docker push docker.io + only: + - tags + - triggers + tags: + - lossless + - priv + +trigger: + stage: triggerPagesVerify + script: + - npmci trigger + only: + - tags + - triggers + tags: + - lossless + - priv + +pages: + stage: triggerPagesVerify + before_script: + - 'npmci -v' + image: hosttoday/ht-docker-node:npmci + script: + - npmci command yarn global add npmpage + - npmci command npmpage + only: + - tags + tags: + - docker + artifacts: + expire_in: 1 week + paths: + - public + +verify: + stage: triggerPagesVerify + script: + - npmci docker pull registry.gitlab.com test + only: + - tags + tags: + - docker diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fc4dd34 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,108 @@ +FROM node:8-slim + +# See https://crbug.com/795759 +RUN apt-get update && apt-get install -yq libgconf-2-4 + +# Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others) +# 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 --no-install-recommends \ + && 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-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst ttf-freefont \ + --no-install-recommends \ + && rm -rf /var/lib/apt/lists/* \ + && apt-get purge --auto-remove -y curl \ + && rm -rf /src/*.deb + +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections \ + && apt-get update \ + && apt-get upgrade --no-install-recommends -y \ + && apt-get install -y -q --no-install-recommends \ + software-properties-common \ + apt-transport-https \ + build-essential \ + ca-certificates \ + curl \ + g++ \ + gcc \ + git \ + make \ + openssl \ + python \ + rsync \ + ssh \ + wget \ + 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 \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && apt-get install yarn -y \ + && apt-get clean \ + && rm -r /var/lib/apt/lists/* + +# It's a good idea to use dumb-init to help prevent zombie chrome processes. +ADD https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 /usr/local/bin/dumb-init +RUN chmod +x /usr/local/bin/dumb-init + +# Uncomment to skip the chromium download when installing puppeteer. If you do, +# you'll need to launch puppeteer with: +# browser.launch({executablePath: 'google-chrome-unstable'}) +# ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true + +RUN npm i puppeteer + +# Add user so we don't need --no-sandbox. +RUN 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 /node_modules \ + && chown -R pptruser:pptruser /usr/local/lib/node_modules \ + && chown -R pptruser:pptruser /usr/local/bin + +# Run everything after as non-privileged user. +USER pptruser +RUN npm i -g npmdocker && npmdocker --version + +# Install puppeteer so it's available in the container. + +ENTRYPOINT ["dumb-init", "--"] +CMD ["google-chrome-unstable"] \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..50ff58e --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "ht-docker-clickhouse", + "private": true, + "version": "1.0.3", + "description": "chrome for docker", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@gitlab.com/hosttoday/ht-docker-clickhouse.git" + }, + "author": "", + "license": "MIT", + "bugs": { + "url": "https://gitlab.com/hosttoday/ht-docker-clickhouse/issues" + }, + "homepage": "https://gitlab.com/hosttoday/ht-docker-clickhouse#README" +}