docker-compose.yml 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. version: '2.3' # volumes long syntax
  2. # options to share host's x-server:
  3. # - Xephyr
  4. # - pass $XAUTHORITY (insecure, https://stackoverflow.com/a/25280523/5894777)
  5. # - xhost + (horribly insecure)
  6. volumes:
  7. home:
  8. services:
  9. browser:
  10. build: .
  11. image: docker.io/fphammerle/brave-browser
  12. container_name: brave_browser
  13. environment:
  14. - DISPLAY
  15. read_only: true
  16. volumes:
  17. - type: bind
  18. source: /tmp/.X11-unix
  19. target: /tmp/.X11-unix
  20. - type: volume
  21. source: home
  22. target: /home/browser
  23. - type: tmpfs
  24. # > ERROR:chrome_browser_main.cc(1254)] Failed to create a ProcessSingleton for your profile directory. [...]
  25. target: /tmp
  26. tmpfs:
  27. # nosuid,nodev,noexec added by default
  28. mode: '1777'
  29. size: 4k
  30. # fix some "Aw, Snap!" errors (including video playback)
  31. # > ERROR:broker_posix.cc(46)] Received unexpected number of handles
  32. # default:
  33. # > $ sudo docker exec brave_browser mount | grep /dev/shm
  34. # > shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)
  35. # https://github.com/puppeteer/puppeteer/blob/v7.1.0/docs/troubleshooting.md#tips
  36. shm_size: 1GB
  37. cap_drop: [ALL]
  38. security_opt: [no-new-privileges]
  39. # https://docs.docker.com/compose/compose-file/compose-file-v2/