Мое приложение требует, чтобы пользователь вводил 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?
1
A
ответ
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
Надеюсь, это то, что вы ищете.