LoginSignup
5
2

More than 5 years have passed since last update.

dokku上でPuppeteerを動かすと"Error: Failed to launch chrome!"というエラーになる時の対処法

Posted at

概要

  • dokkuでpuppeteerを動かしたい。
  • ローカルでは動くが、本番サーバーではエラーが出て動作しない。
  • 詰んで数日2~3日も無駄にしてしまった。後続者のためにメモ。

エラー内容

2019-03-08T17:17:35.658980463Z app[web.1]: Error: Failed to launch chrome!
2019-03-08T17:17:35.658991689Z app[web.1]: /app/node_modules/puppeteer/.local-chromium/linux-624492/chrome-linux/chrome: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory
2019-03-08T17:17:35.658994915Z app[web.1]: 
2019-03-08T17:17:35.658997085Z app[web.1]: 
2019-03-08T17:17:35.658999215Z app[web.1]: TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
2019-03-08T17:17:35.659001950Z app[web.1]: 
2019-03-08T17:17:35.659004031Z app[web.1]:     at onClose (/app/node_modules/puppeteer/lib/Launcher.js:360:14)
2019-03-08T17:17:35.659006156Z app[web.1]:     at Interface.helper.addEventListener (/app/node_modules/puppeteer/lib/Launcher.js:349:50)
2019-03-08T17:17:35.659014821Z app[web.1]:     at Interface.emit (events.js:194:15)
2019-03-08T17:17:35.659017113Z app[web.1]:     at Interface.close (readline.js:397:8)
2019-03-08T17:17:35.659019221Z app[web.1]:     at Socket.onend (readline.js:173:10)
2019-03-08T17:17:35.659021409Z app[web.1]:     at Socket.emit (events.js:194:15)
2019-03-08T17:17:35.659023631Z app[web.1]:     at endReadableNT (_stream_readable.js:1107:12)
2019-03-08T17:17:35.659026145Z app[web.1]:     at process.internalTickCallback (internal/process/next_tick.js:72:19)

動作環境

  • Ubuntu 16.04
  • Dokku 0.14.5
  • Puppeteer 1.13.0

原因

  • puppeteerに必要なChromeヘッドレスは、デフォルトの状態のDokkuでは機能しない。
    • インストールする必要があるが、その方法がわからなくて2~3日詰んでいた

解決策

dokku-aptプラグインで必要なパッケージをインストールする

  • 【前提】dokkuインストール、gitのリモートリポジトリの追加は済ませた状態
  • dokku-aptのインストール(SSH接続した状態)を実行
//dokku version0.4.0以上の場合(たいていはこっち)
sudo dokku plugin:install https://github.com/F4-Group/dokku-apt

//dokku version0.4.0未満の場合
git clone https://github.com/F4-Group/dokku-apt -b 0.3.0 /var/lib/dokku/plugins/dokku-apt
dokku plugins-install
  • 開発中のプロジェクトのルートフォルダにapt-packages(拡張子なし)を作成
    • ↑勘違いして、サーバー上のhome/dokku/<app_name>に配置してしまっていて詰んでた👊💢
  • ファイルの内容は以下の通り
    • 改行区切りでインストールしたいパッケージを記述
    • 公式サイトからUbuntuで動かすためのパッケージ一覧をコピペしただけなので不要なのもあるかも
gconf-service
libasound2
libatk1.0-0
libatk-bridge2.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
  • git add .git commit -m"add apt-packagesgit push dokku masterなどでpush
  • dokkuがデプロイするときに自動的にapt-packagesの内容をインストールしてくれる

参考

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2