Несколько команд в докере ENTRYPOINT - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь создать собственный образ докера tcserver. Но у меня проблемы с запуском веб-сервера и кота.
Насколько я понимаю, я должен использовать ENTRYPOINT для запуска нужных мне команд.
Вопрос в том, можно ли запускать несколько команд с помощью ENTRYPOINT?
Или я должен создать небольшой скрипт bash, чтобы начать все?

В основном я хотел бы сделать следующее:

ENTRYPOINT /opt/pivotal/webserver/instance1/bin/httpdctl start && /opt/pivotal/webserver/instance2/bin/httpdctl start && /opt/pivotal/pivotal-tc-server-standard/standard-4.0.1.RELEASE/tcserver start instance1 -i /opt/pivotal/pivotal-tc-server-standard && /opt/pivotal/pivotal-tc-server-standard/standard-4.0.1.RELEASE/tcserver start instance2 -i /opt/pivotal/pivotal-tc-server-standard

Но я не знаю, хорошая ли это практика или это сработает.

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Вы можете использовать NPM concurrently

Например,

ENTRYPOINT ["NPX","concurrently","command1","command2"]

Он будет запускать их параллельно.

0 голосов
/ 10 января 2019

Если вы хотите выполнить много команд в точке входа. Лучшая идея - создать файл bash. Например, bash-файл может commands.sh как этот

#!/bin/bash
mkdir /root/.ssh
echo "Something"
cd tmp
ls
...

А потом в вашем DockerFile. Заданная точка входа - файл commands.sh (который выполняет и запускает все ваши команды внутри)

COPY commands.sh /scripts/commands.sh
RUN ["chmod", "+x", "/scripts/commands.sh"]
ENTRYPOINT ["/scripts/commands.sh"]

После этого каждый раз, когда вы запускаете свой контейнер. commands.sh выполнит и запустит все необходимые вам команды. Вы можете посмотреть здесь https://github.com/dangminhtruong/drone-chatwork

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