docker-compose завершился с кодом 0 - преобразовать команду запуска docker в docker-compose up? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь добавить службу API прожектора DBpedia в docker-compose. (https://github.com/dbpedia-spotlight/spotlight-docker)

Обычно эта команда работает отлично:

docker run -i -p 2222:80 dbpedia/spotlight-english spotlight.sh

моя попытка docker-compose.yml:

version: '3'
services:
  dbpedia:
    image: "dbpedia/spotlight-english:latest"
    ports:
      - "2222:2222"

Я получаю следующую ошибкупри запуске docker-compose up:

Recreating composetest_dbpedia_1 ... done
Attaching to composetest_dbpedia_1
composetest_dbpedia_1 exited with code 0

Чего мне не хватает? Я пытаюсь запустить службу DBpedia, как раньше, но как часть файла docker-compose

1 Ответ

0 голосов
/ 07 ноября 2019

Исходный ответ (проверьте обновление):

Когда вы выполняете

docker run -i -p 2222:80 dbpedia/spotlight-english spotlight.sh

, вы явно переопределяете точку входа изображения по умолчанию.

Для достиженияТо же самое с docker-compose, попробуйте следующий файл compose:

version: '3'
services:
  dbpedia:
    image: "dbpedia/spotlight-english:latest"
    ports:
      - "2222:80"
    entrypoint: spotlight.sh

Вы ошиблись с отображением портов, которое я исправил.

Ссылка


ОБНОВЛЕНИЕ: Как правильно сказал @David Maze в комментариях, с помощью команды docker run вы переопределяете инструкцию CMD изображения, так что эквивалентная запись docker-composeэто command: spotlight.sh. Очевидно, что для вашего изображения не было никакой разницы, но есть случаи, когда действия CMD и ENTRYPOINT имеют решающее значение для изображения.

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