Reputation: 986
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
Upvotes: 11
Views: 29449
Reputation: 938
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"]
Upvotes: 1
Reputation: 381
You can run multiple commands for a service in docker compose by:
command: sh -c "command1 && command2 && command2"
Upvotes: 6
Reputation: 1209
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.
Upvotes: 13
Reputation: 1526
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
Upvotes: -1