如何在Docker中使用process.argv运行容器?

时间:2017-01-25 14:36:48

标签: node.js docker docker-compose

我的应用要求用户在节点index.js之后输入3个参数,例如:
node index.js 1 1 1
当我使用Dockerfile时,我在那里写道:
    ENTRYPOINT ["node", "index.js"]
在我执行终端命令后:
docker run 1 1 1。这是有效的,论证正在进行中.argv
但现在我需要使用docker-compose.yml,我不知道我必须做什么。

1 个答案:

答案 0 :(得分:1)

因为价值是"静态"对于正在运行的容器,并且在容器的运行时期间不会更改,您只需使用环境变量。

在docker-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 

希望这就是你要找的东西。