2017-01-25 8 views
1

Мое приложение требует, чтобы пользователь вводил 3 параметра после узла index.js, например:
node index.js 1 1 1.
Когда я только Dockerfile, я написал там:
ENTRYPOINT ["node", "index.js"]
И после того, как я выполнил в команде терминала:
docker run 1 1 1. Это сработало, аргументы были в process.argv
Но теперь мне нужно использовать docker-compose.yml, и я не знаю, что я должен делать.Как я могу запустить контейнер с process.argv в Docker?

ответ

0

Поскольку значения являются «статическими» для запускаемого контейнера и не будут меняться во время выполнения контейнера, вы можете просто использовать переменные среды.

Внутри вашего Докер-compose.yml определяют переменные окружения (используется в качестве значения по умолчанию) для контейнера, как:

<service_name>: 
    environment: 
    - value1: 1 
    - value2: 1 
    - value3: 1 

См: https://docs.docker.com/compose/environment-variables/

Измените точку входа, чтобы использовать переменные среды, как:

ENTRYPOINT ["node", "index.js", "$value1", "$value2", "$value3"] 

при запуске контейнера вы можете просто изменить значение с:

docker-compose run -e value1=2 

Надеюсь, это то, что вы ищете.