docker-compose为服务运行多个命令

时间:2019-04-19 20:28:05

标签: docker

我在Windows上使用docker-版本18.03(客户端)/ 18.05(服务器)。我已经为ELK堆栈创建了docker-compose文件。一切正常。我想做的是在启动kibana之前安装logtrail。我当时正在考虑先复制logtrail*.zip,然后再调用install:

container_name: kibana
(...)
command:
  - docker cp kibana:/ ./kibana/logtrail/logtrail-6.7.1-0.1.31.zip
  - /bin/bash
  - ./bin/kibana-plugin install/logtrail-6.7.1-0.1.31.zip

但是这看起来并不正确,因为首先它不起作用,其次我不确定是否可以像我一样调用多行命令,并且我不确定{{在创建服务的那个阶段甚至允许使用docker cp中的1}}

3 个答案:

答案 0 :(得分:0)

如果您要安装软件,David Maze的评论似乎是标准路径。如果您想实际运行多个命令,请查看此问题Using Docker-Compose, how to execute multiple commands

的答案

答案 1 :(得分:0)

您可以通过以下方式在 docker compose 中为一个服务运行多个命令:

command: sh -c "command1 && command2 && command2"

答案 2 :(得分:-1)

command:
- /bin/bash
- -c
- |
  echo "This is a multiline command"
  echo "See how I escape $$ sign"
  echo $$PATH

您可以像上面那样运行多个命令,但是不能像命令中那样运行docker cp