From 7a98b6c66689bb681c6fcdb120a2bd476acfb3cc Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Wed, 16 May 2018 01:57:55 +0200 Subject: [PATCH] fix(core): initial --- .gitlab-ci.yml | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 45 ++++++++++++++++++++++++++++++ package.json | 20 +++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile create mode 100644 package.json 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..426bbce --- /dev/null +++ b/Dockerfile @@ -0,0 +1,45 @@ +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 + +# 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..bc2ff86 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "ht-docker-chrome", + "private": true, + "version": "1.0.0", + "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-chrome.git" + }, + "author": "", + "license": "MIT", + "bugs": { + "url": "https://gitlab.com/hosttoday/ht-docker-chrome/issues" + }, + "homepage": "https://gitlab.com/hosttoday/ht-docker-chrome#README" +}