Docker-Compose Restart Policy

后端 未结 3 1023
长发绾君心
长发绾君心 2021-01-31 13:49

I looked thru the docs for docker-compose and I see that Version 3 has a deploy restart policy but it\'s only for swarm. I tried setting restart_policy on my service but got thi

相关标签:
3条回答
  • 2021-01-31 13:50

    Version 2 supports restart policies, using the restart keyword, and should work fine for you if you don't need Swarm (which you said you don't need/want).

    version: '2'
    services:
      web:
        image: apache
        restart: always
    

    https://docs.docker.com/compose/compose-file/compose-file-v2/#restart

    Compose format version 3 has a parameter called restart_policy, but so far as I can tell from documentation it is only valid as part of deploy, which is only used when deploying to a Swarm. So version 3 is probably not useful in your case.

    0 讨论(0)
  • 2021-01-31 13:59

    Even if you're NOT in swarm mode, there is an option called --compatibility which will work with restart_policy, this will attempt to restart even if you're not deploying. The only glitch, is the sub-keys of 'delay' and 'window' will be ignored. Here is an example:

    version: '3.7'
    services:
      build:
        context: .
        dockerfile: Dockerfile
      container_name: example
      deploy:
        restart_policy:
          condition: on-failure
          max-attempts: 3
    

    run this command:

    docker-compose -f docker-compose.yml --compatability up
    
    0 讨论(0)
  • 2021-01-31 14:11

    It looks like a gap in the documentation

    In 3rd version, we can still use "restart" inside services same as before in v.2 (except for deploy into swarm)

    version: '3'
    services:
      my-service:
        restart: on-failure:5 
    

    https://docs.docker.com/compose/compose-file/#restart

    0 讨论(0)
提交回复
热议问题