具有多个参数的docker入口点

时间:2017-09-21 06:02:15

标签: docker dockerfile

我正在创建Dockerfile以在ubuntu容器上运行以太坊节点。

我想在容器中依次运行下面的shell命令。

geth --datadir /home/ubuntu/eth-dev init /home/ubuntu/eth-dev/genesis.json 
geth --networkid 45634 --verbosity 4  --ipcdisable --rpc --port 30301 --rpcport 8545 --rpcaddr 0.0.0.0 console 2>> /home/ubuntu/eth-dev/eth.log

我在Dockerfile中创建了以下入口点,我认为这是错误的。

 ENTRYPOINT ["geth", "--datadir /home/ubuntu/eth-dev", "init /home/ubuntu/eth-dev/genesis.json", "--networkid 45634", "--verbosity 4", "--ipcdisable", "--rpc", "--port 30301", "--rpcport 8545", "--rpcaddr 0.0.0.0", "console 2>> /home/ubuntu/eth-dev/eth.log"] 

任何人都可以更正上述shell命令的ENTRYPOINT

1 个答案:

答案 0 :(得分:2)

将两个命令放在shell脚本中,COPY Dockerfile中的shell脚本,然后使用该shell脚本作为入口点。

docker-entrypoint.sh:

geth --datadir /home/ubuntu/eth-dev init /home/ubuntu/eth-dev/genesis.json 
geth --networkid 45634 --verbosity 4  --ipcdisable --rpc --port 30301 --rpcport 8545 --rpcaddr 0.0.0.0 console 2>> /home/ubuntu/eth-dev/eth.log

Dockerfile:

COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]

确保在复制之前或在Dockerfile中的chmod +x命令中RUN脚本。