亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 docker 外調用 Docker 容器

在 docker 外調用 Docker 容器

PHP
汪汪一只貓 2022-07-29 16:12:57
我有一個在 Apache 下運行且沒有 docker 的項目。但是,在這個項目中,我有一個 PDF 導出,我想在 docker 容器中調用它。你是怎樣做的?這是我的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'Browsershot 服務下載 PDF 并具有 node 和 npm。為此,它模擬了一個瀏覽器,所以我有一個 chrome 服務,但我不知道它是否是正確的方法。這兩個命令在終端中工作:docker-compose run --rm browsershot node -vdocker-compose run --rm browsershot npm -v但是,Browsershot 需要可執行節點和 npm 的路徑,這兩個命令突然變成了上面的 2 個命令:/** * @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')    ;}變量$nodePathisdocker-compose run --rm browsershot node和變量$npmPathid docker-compose run --rm browsershot npm。此代碼適用于我的本地機器中的可執行文件,例如/usr/local/bin/node和/usr/local/bin/npm。但是,當我使用 docker 命令啟動導出時,出現此錯誤:HTTP 500 Internal Server ErrorExit Code: 1(General error)Working directory: /media/vdufour/DATA/Sites/keneo/publicOutput:================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.
查看完整描述

2 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

使用 docker-compose 時,我只是像這樣“SSH”到容器的外殼中:

docker-compose exec php /bin/bash

php我的容器在哪里docker-compose.yml

請記住,對于您打開的每個終端窗口,您還需要運行以下命令來加載環境變量:

eval $(docker-machine env)

如果不這樣做,您將收到Couldn't connect to Docker daemon消息。


查看完整回答
反對 回復 2022-07-29
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

嘗試使用 bash 運行命令

docker-compose run --rm browsershot bash -c "npm && node && some_command..."


查看完整回答
反對 回復 2022-07-29
  • 2 回答
  • 0 關注
  • 188 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號