在docker-compose中传递参数并执行脚本

时间:2018-04-20 06:49:56

标签: docker docker-compose

我想提供这样的服务:

datastax:
  image: luketillman/datastax-enterprise:5.1.0
  ports:
    - "9042:9042"
  volumes:
    - /datasets:/tmp/scripts
  command: [ "-s",
             "bash -c \"sleep 40 &&
                        cqlsh -f /tmp/scripts/init.cql\""]

以搜索模式(-s)启动Cassandra然后(当它启动时),通过init.cql执行cqlsh

是否可以使用撰写?怎么办?

1 个答案:

答案 0 :(得分:1)

您可以运行具有多个子命令的命令,如下所示:

datastax:
  image: luketillman/datastax-enterprise:5.1.0
  ports:
    - "9042:9042"
  volumes:
    - /datasets:/tmp/scripts
  command: bash -c "dse cassandra -s; sleep 40; cqlsh -f /tmp/scripts/init.cql"

请注意,您必须使用完整的dse cassandra -s命令,不能重复使用图像AFAIK中的默认命令。