]> git.immae.eu Git - github/fretlink/docker-puppeteer.git/blame - README.md
Update README.md
[github/fretlink/docker-puppeteer.git] / README.md
CommitLineData
162d70f3
TL
1# Docker Puppeteer
2
ba32f188 3A base image for running Puppeteer scripts. Add your own tools (such as Jest, Mocha, etc), link services you want to test via Docker Compose, and run your Puppeteer scripts with a headless Chromium.
162d70f3 4
98ecb0ea
TL
5## Usage example
6
7Dockerfile.integration-tests:
162d70f3
TL
8
9```Dockerfile
fc50f70d
TL
10FROM buildkite/puppeteer:version
11RUN npm i mocha
98ecb0ea
TL
12ENV PATH="${PATH}:/node_modules/.bin"
13```
14
15docker-compose.integration-tests.yml:
16
17```yml
18version: '3'
19services:
20 tests:
21 build:
22 context: .
23 dockerfile: Dockerfile.integration-tests
24 volumes:
25 - "./integration-tests:/integration-tests"
26 - "/screenshots"
27 command: mocha --recursive /integration-tests
28 links:
29 - app
30 app:
31 image: tutum/hello-world
32 expose:
33 - "80"
34```
35
36integration-tests/index.test.js:
37
38```js
39const assert = require('assert')
40const puppeteer = require('puppeteer')
162d70f3 41
98ecb0ea
TL
42let browser
43let page
44
45before(async() => {
46 browser = await puppeteer.launch({
47 args: [
48 // Required for Docker version of Puppeteer
49 '--no-sandbox',
50 '--disable-setuid-sandbox',
51 // This will write shared memory files into /tmp instead of /dev/shm,
52 // because Docker’s default for /dev/shm is 64MB
53 '--disable-dev-shm-usage'
54 ]
55 })
56
57 const browserVersion = await browser.version()
58 console.log(`Started ${browserVersion}`)
59})
60
61beforeEach(async() => {
62 page = await browser.newPage()
63})
64
65afterEach(async() => {
66 await page.close()
67})
68
69after(async() => {
70 await browser.close()
71})
72
73describe('App', () => {
74 it('renders', async() => {
75 const response = await page.goto('http://app/')
76 assert(response.ok())
77 await page.screenshot({ path: `/screenshots/app.png` })
78 })
79})
80```
162d70f3 81
98ecb0ea 82Running:
162d70f3 83
6fc9024b 84```
98ecb0ea 85docker-compose -f integration-tests run tests
bb4483e4 86```