Как выполнить файл JAR из PHP-скрипта в Docker - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть php, mysql, nginx в докере. Теперь мне нужно запустить jar-файл с параметрами из php-скрипта.

Я добавил Java к своему docker-compose.yml (часть docker-compose приведена ниже)

version: '3.2'
services:
  php:
    build: ./configs/php
    restart: always
    volumes:
      - ./app/basic:/var/www/html
    depends_on:
      - db
      - java

  java:
    image: openjdk:7

И я пытаюсь выполнить следующую часть кода из сценария php:

$command = "java -jar '/var/www/html/jar/MyFile.jar' command"
exec($command, $output, $return);

Я подозреваю, что exec simple не может найти, где находится java. Как заставить это работать?

Большое спасибо

1 Ответ

0 голосов
/ 15 ноября 2018

В Docker два контейнера работают совершенно отдельно друг от друга, поэтому, когда вы используете exec, он попытается выполнить эту команду в вашем php контейнере, а не в контейнере Java.Единственный способ запустить процесс в другом контейнере - через HTTP-запрос, где в контейнере Java работает API, который перехватывает этот вызов и, соответственно, выполняет правильный JAR.

Другим решением может быть использование большегоизображение для вашего php-контейнера, который также включает java, чтобы вы могли выполнить jar внутри вашего php-контейнера.

Я надеюсь, что это ответ на ваш вопрос, если что-то неясно, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...