I have a docker-compose file for some services, among them an airflow-webserver. I realized that I can both add restart and deploy-restart_policy to the compose file. I tried searching for a difference between the two, but could only find posts discussing the individual settings (like on-failure or always).
- What is the difference of setting the configuration?
- Which should I use?
- Is it a versioning issue, e.g.
restartis from older versions anddeploy-restart_policyis the newer one?
Example docker-compose.yml:
version: "3"
services:
airflow-webserver:
container_name: airflow_container
image: puckel/docker-airflow
ports:
- '8080:8080'
networks:
- dataworld
volumes:
- ./airflow/dags:/usr/local/airflow/dags
- ./airflow/logs:/usr/local/airflow/logs
deploy:
restart_policy:
condition: on-failure
restart: on-failure
CodePudding user response:
The restart and deploy.restart_policy options configure the same thing but depend on the way you run your containers:
restartis used by Docker Composedeploy.restart_policyis used by Docker Swarm
The deploy option is used for Docker Swarm only and is ignored by Docker Compose.
From the documentation on deploy.restart_policy:
Configures if and how to restart containers when they exit. Replaces
restart.
And here about restart:
The
restartoption is ignored when deploying a stack in swarm mode.
