Search code examples
dockerdocker-compose

Docker Compose - How to execute multiple commands?


I want to do something like this where I can run multiple commands in the following code:

db:
  image: postgres
web:
  build: .
  command: python manage.py migrate
  command: python manage.py runserver 0.0.0.0:8000
  volumes:
    - .:/code
  ports:
    - "8000:8000"
  links:
    - db

How could I execute multiple commands?


Solution

  • Figured it out, use bash -c.

    Example:

    command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
    

    Same example in multilines:

    command: >
        bash -c "python manage.py migrate
        && python manage.py runserver 0.0.0.0:8000"
    

    Or:

    command: bash -c "
        python manage.py migrate
        && python manage.py runserver 0.0.0.0:8000
      "