我正在创建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
。
答案 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
脚本。