質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

338閲覧

【npm/docker】puppeteerが呼び出せない

nnahito

総合スコア2004

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2018/10/23 08:42

はじめに

npmなど、あまり詳しくありません

環境

  • MacOS High Sierra (10.13.4)
  • Docker for Mac 18.06.1-ce-mac73 (26764)

Dockerの環境ですが、文字数の関係でこの質問には申し訳なりませんが省略させていただきます。
Dockerファイルなどの情報はこちらの質問に記載させて頂いておりますので、お手数ですが必要場合は御覧ください。

やりたいこと

nginx + php7(CakePHP3)の環境で、Browser Shotというライブラリを使い、
スクリーンショットを作成したいと考えています。
AWSのEC2インスタンスでは、下記手順で動作が確認できました。

bash

1curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash - 2sudo yum install -y nodejs 3 4sudo yum install -y pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y 5sudo yum install -y php-gd 6sudo npm install --global --unsafe-perm puppeteer 7 8sudo chmod -R o+rx /usr/lib/node_modules/puppeteer/.local-chromium

しかし、このDocker(AmazonLinux2イメージ)で作成したコンテナで、
上記のコマンドを入れても下記のエラーになってしまいます。

Error: [Symfony\Component\Process\Exception\ProcessFailedException] The command "PATH=$PATH:/usr/local/bin NODE_PATH=`npm root -g` node '/var/www/html/vendor/spatie/browsershot/src/../bin/browser.js' '{"url":"file:///tmp/0764143001540283828/index.html","action":"screenshot","options":{"type":"png","path":"/var/www/html/tmp/15897868155bceddb4b4e09.png","args":[],"viewport":{"width":800,"height":600},"displayHeaderFooter":false,"fullPage":true}}'" failed. Exit Code: 1(General error) Working directory: /var/www/html/webroot Output: ================ Error Output: ================ ┌────────────────────────────────────────────────────────────┐ │ npm update check failed │ │ Try running with sudo or get access │ │ to the local update config store via │ │ sudo chown -R $USER:$(id -gn $USER) /var/lib/nginx/.config │ └────────────────────────────────────────────────────────────┘ Error: Failed to launch chrome! [1023/173709.483025:FATAL:zygote_host_impl_linux.cc(116)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox. #0 0x55e4c597bcac base::debug::StackTrace::StackTrace() #1 0x55e4c58f5670 logging::LogMessage::~LogMessage() #2 0x55e4c6df9050 service_manager::ZygoteHostImpl::Init() #3 0x55e4c55bed7e content::ContentMainRunnerImpl::Initialize() #4 0x55e4c55f23e8 service_manager::Main() #5 0x55e4c55bd5c1 content::ContentMain() #6 0x55e4c9a96ae8 headless::(anonymous namespace)::RunContentMain() #7 0x55e4c9a96b78 headless::HeadlessBrowserMain() #8 0x55e4c55ef9db headless::HeadlessShellMain() #9 0x55e4c38fd1ac ChromeMain #10 0x7fda8ac18f6a __libc_start_main #11 0x55e4c38fd02a _start Received signal 6 #0 0x55e4c597bcac base::debug::StackTrace::StackTrace() #1 0x55e4c597b821 base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x7fda90dad1f0 <unknown> #3 0x7fda8ac2c6a0 __GI_raise #4 0x7fda8ac2dc81 __GI_abort #5 0x55e4c597a645 base::debug::BreakDebugger() #6 0x55e4c58f5ae8 logging::LogMessage::~LogMessage() #7 0x55e4c6df9050 service_manager::ZygoteHostImpl::Init() #8 0x55e4c55bed7e content::ContentMainRunnerImpl::Initialize() #9 0x55e4c55f23e8 service_manager::Main() #10 0x55e4c55bd5c1 content::ContentMain() #11 0x55e4c9a96ae8 headless::(anonymous namespace)::RunContentMain() #12 0x55e4c9a96b78 headless::HeadlessBrowserMain() #13 0x55e4c55ef9db headless::HeadlessShellMain() #14 0x55e4c38fd1ac ChromeMain #15 0x7fda8ac18f6a __libc_start_main #16 0x55e4c38fd02a _start r8: 0000000000000000 r9: 00007ffd09eec170 r10: 0000000000000008 r11: 0000000000000246 r12: 00007ffd09eec998 r13: 0000000000000161 r14: 00007ffd09eec9a0 r15: 00007ffd09eec9a8 di: 0000000000000002 si: 00007ffd09eec170 bp: 00007ffd09eec3c0 bx: 0000000000000006 dx: 0000000000000000 ax: 0000000000000000 cx: 00007fda8ac2c6a0 sp: 00007ffd09eec170 ip: 00007fda8ac2c6a0 efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000 [end of stack trace] Calling _exit(1). Core file will not be generated. TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md at onClose (/usr/lib/node_modules/puppeteer/lib/Launcher.js:339:14) at Interface.helper.addEventListener (/usr/lib/node_modules/puppeteer/lib/Launcher.js:328:50) at Interface.emit (events.js:187:15) at Interface.close (readline.js:379:8) at Socket.onend (readline.js:157:10) at Socket.emit (events.js:187:15) at endReadableNT (_stream_readable.js:1094:12) at process._tickCallback (internal/process/next_tick.js:63:19)

-gでグローバルなインストールかと思い、下記に変更してもやはり駄目でした。

cd /var/www/html/ mkdir chromium cd ./chromium/ git clone https://github.com/scheib/chromium-latest-linux . ./update.sh cd ./latest/ chown root:root chrome_sandbox && chmod 4755 chrome_sandbox export CHROME_DEVEL_SANDBOX="/var/www/html/webroot/chromium/latest" cd /var/www/html export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm install --save puppeteer export CHROME_DEVEL_SANDBOX="/var/www/html/webroot/chromium/latest/chrome_sandbox"

こちらのissueを参考にしました

もしこの問題がわかる方がいらっしゃいましたら、ご教示いただけますと幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問