Tasks: Running Commands
After deploying you may need to run a series of commands to prepare the deployed container. For instance, you may need to run your integration tests or your application migrations. For this you need to use the run task, which is one of the inbuilt tasks. The run task allows you to run commands in containers, inside the deployed environment.
Most of the options are shared with the deploy task:
cluster, to select the cluster on which the container will runimage, to select the image that will be used to run the commandsenvironment, to select the name of the environment on which the container will be createdenvironment_variables, to inject some environment variables in the container
Once you’ve configured these options according to your needs, you only have to define the commands options as in the following example.
tasks:
# ...
migrations:
run:
cluster: my-cluster
image:
from_service: web
commands:
- composer run-script update-parameters
- app/console doctrine:migrations:migrate --no-interaction
environment_variables:
- name: DATABASE_PASSWORD
value: ${THE_PRIVATE_DATABASE_PASSWORD_VARIABLE}
That example will run the some migration commands in a container created from the image of the web service. It will run on the cluster named my-cluster and will have the environment variable named DATABASE_PASSWORD injected with the value of a THE_PRIVATE_DATABASE_PASSWORD_VARIABLE variable previously defined.