docker-compose запускает скрипт точки входа в другой каталог - PullRequest
0 голосов
/ 04 июня 2018

Мне было просто интересно, как запустить скрипт docker-entrypoint в другом каталоге.Например,

the-service:
   image: the-service
   container_name: the-service
   entrypoint: ./app/the/docker-entrypoint.sh 
   build: ./app/the
   ports:
     - 8080:8080

здесь я получаю ERROR: for the-service Cannot start service the-service: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"./app/the-service/docker-entrypoint.sh\": stat ./app/the-service/docker-entrypoint.sh: no such file or directory": unknown ERROR: Encountered errors while bringing up the project.

версия docker-compose - 2.1.Так каков правильный способ запуска этого скрипта?

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Я думаю, я понял это.Вы используете опцию сборки, чтобы образ docker мог находиться внутри проекта docker-compose.Это немного нестандартно, но совершенно нормально.Использование изображения более стандартно.

Точка входа выполняется после сборки, независимо от положения в файле docker-compose.yml.Когда мы пишем точку входа, мы пишем ссылку на файл изображения, а не на локальную файловую систему.

Вам, вероятно, следует отредактировать ваш .app / файл / Dockerfile следующим образом, добавив "COPY docker-entrypoint.sh/ "add" ENTRYPOINT ["sh", "/docker-entrypoint.sh"]

Затем вы можете отредактировать ваш docker-compose.yml, удалив" точку входа ": ./app/the/docker-entrypoint.sh "


СТАРЫЙ ОТВЕТ

Не проверяя сам, я бы предположил, что это будет работать:

  1. Поскольку @ B0rn2C0de предлагает установить рабочий каталог
  2. В качестве альтернативы используйте относительный путь к тому месту, где на самом деле находится WORKDIR
  3. В качестве альтернативы используйте абсолютный путь.
0 голосов
/ 04 июня 2018

Попробуйте установить в текущем рабочем каталоге местоположение вашего приложения в файле Docker, используя опции WORKDIR https://docs.docker.com/engine/reference/builder/#workdir

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