6

I am using docker on windows - version 18.03 (client)/18.05 (server). I have created docker-compose file for ELK stack. Everything is working fine. What I would like to do is, to install logtrail before kibana is started. I was thinking about copying logtrail*.zip first, then call 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

But that doesn't look like right way as first of all it doesn't work, second of all I am not sure if I can call mutliple commands like I did and third of all I'm not sure if docker cp in command is even allowed on that stage of service creation

user3529850
  • 1,632
  • 5
  • 32
  • 51

4 Answers4

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

You can run multiple commands like above however you can not run docker cp as in your command.

Görkem Mülayim
  • 1,139
  • 1
  • 12
  • 22
3

You can run multiple commands for a service in docker compose by:

command: sh -c "command1 && command2 && command2"
Ranjan MP
  • 341
  • 1
  • 6
0

THATS MY SOLUTION FOR THIS CASE:

#    OPTION 01:
#    command: >
#      bash -c "chmod +x /scripts/rs-init.sh
#      && sh /scripts/rs-init.sh"
#    OPTION 02:
#    entrypoint: [ "bash", "-c", "chmod +x /scripts/rs-init.sh && sh /scripts/rs-init.sh"]

GtdDev
  • 748
  • 6
  • 14
-1

If you're looking to install software David Maze's comment seems to be the standard path. If you want to actually run multiple commands look at the answer to this SO question Using Docker-Compose, how to execute multiple commands

loyalBrown
  • 1,416
  • 16
  • 23