在docker-compose文件中使用args

时间:2018-08-30 01:18:48

标签: docker docker-compose

我的docker-compose.yml文件中包含以下内容

 geth-testnet:
    build:
      context: .
      dockerfile: Dockerfile
      args:  
        GETH_REPO: 'https://github.com/ethereum/go-ethereum'
        GETH_VERSION: 'v1.8.12'
        RPC_LISTEN_PORT: 8546
    command: "--rpcport ${RPC_LISTEN_PORT}"
    entrypoint: 
        - "geth"
    tty: true
    image: geth-node-testnet:v1.8.12
    container_name: geth-node-testnet
    ports:
      - '8546:8546'
    volumes:
      - /root/.ethereum

当我运行docker-compose up --build时,希望它运行以下命令:

geth -rpcport 8546

但是,出现以下错误

flag needs an argument: -rpcport

因此,RPC_LISTEN_PORT的值未正确替换。

我的dockerfile中有ARG RPC_LISTEN_PORT

1 个答案:

答案 0 :(得分:0)

仔细检查了您的问题,似乎command: "--rpcport ${RPC_LISTEN_PORT}"无法利用您在docker-compose.yml中输入的值。

因此请提供两种解决方案:

    在执行export RPC_LISTEN_PORT=8546命令之前,先用
  1. compose进行bash操作。
  2. 在同一文件夹中新建一个.env文件,将RPC_LISTEN_PORT=8546放入其中。