Call Docker container outside docker

I have a project running under Apache and without docker. However, in this project, I have a PDF export and this PDF export I want to call it in a docker container. How do you do that?

Here is my docker-compose.yaml :

version: "3.3"

services:
    php:
        image: registry.gitlab.com/nodevo/keneo/php:latest
        volumes:
            - .:/srv:rw,cached
            - ~/.ssh/id_rsa:/root/.ssh/id_rsa:ro
            - ~/.composer:/tmp

    browsershot:
        image: ouranoshong/browsershot
        links:
          - chrome

    chrome:
        build: ./docker/chrome
        cap_add:
            - SYS_ADMIN
        ports:
            - '9223:9222'

The Browsershot service downloads the PDF and have node and npm. For that, it simulates a browser, so I have a chrome service but I don’t know if it’s the right method.

These 2 commands works in a terminal :

docker-compose run --rm browsershot node -v
docker-compose run --rm browsershot npm -v

However, Browsershot needs the path of the executable node and npm which are suddenly the 2 commands above just like that :

/**
 * @param string $nodePath
 * @param string $npmPath
 */
public function __construct(string $nodePath, string $npmPath)
{
    $this->browserShot = new Browsershot();
    $this->browserShot
        ->setNodeBinary($nodePath)
        ->setNpmBinary($npmPath)
        ->showBackground()
        ->setOption('fullPage', true)
        ->setOption('args', ['--disable-web-security'])
        ->emulateMedia('screen')
    ;
}

The variable $nodePath is docker-compose run --rm browsershot node and variable $npmPath id docker-compose run --rm browsershot npm.
This code works with executable in my local machine like /usr/local/bin/node and /usr/local/bin/npm.

But, when I launch the export with docker commands, I get this error:

HTTP 500 Internal Server Error
The command "PATH=$PATH:/usr/local/bin NODE_PATH=`docker-compose run --rm browsershot node docker-compose run --rm browsershot npm root -g` docker-compose run --rm browsershot node '/media/vdufour/DATA/Sites/keneo/vendor/spatie/browsershot/src/../bin/browser.js' '{"url":"file:///tmp/639306024-0718333001579852859/index.html","action":"pdf","options":{"args":["--disable-web-security"],"viewport":{"width":800,"height":600},"fullPage":true,"emulateMedia":"screen","delay":2000,"displayHeaderFooter":false,"printBackground":true}}'" failed.

Exit Code: 1(General error)

Working directory: /media/vdufour/DATA/Sites/keneo/public

Output:
================


Error Output:
================
Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

Source: Symfony Questions

Was this helpful?

0 / 0

Leave a Reply 0

Your email address will not be published. Required fields are marked *