Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何设置docker,但在新容器准备好之前保持容器的活动状态_Python_Docker_Devops - Fatal编程技术网

Python 如何设置docker,但在新容器准备好之前保持容器的活动状态

Python 如何设置docker,但在新容器准备好之前保持容器的活动状态,python,docker,devops,Python,Docker,Devops,我的问题是,当我向docker文件或docker compose添加更改时,之后我会向下执行docker compose,然后执行docker compose up--build-d,这需要很多时间(大约15分钟)。 我想在新的容器准备好之前让旧的容器保持活力。。。 我尝试使用docker文档中的“实时还原”,但它似乎对我不起作用。 我的docker编写文件 version: '3' services: db: image: postgres restart: al

我的问题是,当我向docker文件或docker compose添加更改时,之后我会向下执行
docker compose
,然后执行
docker compose up--build-d
,这需要很多时间(大约15分钟)。 我想在新的容器准备好之前让旧的容器保持活力。。。 我尝试使用docker文档中的“实时还原”,但它似乎对我不起作用。 我的docker编写文件

version: '3'
    
services:
  db:
    image: postgres
    restart: always
    environment:
      - POSTGRES_DB=test
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=test123
    volumes:
      - "./postgres:/var/lib/postgresql/data"

  rabbit:
    hostname: rabbit
    image: rabbitmq:latest
    environment:
      - RABBITMQ_DEFAULT_USER=test
      - RABBITMQ_DEFAULT_PASS=test
    ports:
      - "5673:5672"

  web:
    build: ./test_phyton
    restart: always

    command: bash -c "/etc/init.d/cron start && export test=dev && python manage.py runserver 0.0.0.0:8000"
    volumes:
      - ./test_phyton:/app
    ports:
      - "80:8000"
      - "443:443"
    links:
      - rabbit
    depends_on:
      - db
      - rabbit





更新docker compose文件后,只需运行

docker-compose up -d
docker-compose up -d --build
使更改生效

更改Dockerfile时,只需运行

docker-compose up -d
docker-compose up -d --build
使更改生效

您不需要每次进行更改时都运行“docker compose down”


请注意,我仅使用docker版本18.09.6和docker compose版本1.27.0测试了此功能

docker compose up-d--build
执行此命令后,旧容器保持工作状态?旧容器保持工作状态,而新容器保持工作状态。新容器建造完成并被提起的那一刻,就是旧容器被拆掉的那一刻。