【发布时间】:2018-08-28 03:54:57
【问题描述】:
我正在使用docker 和docker-compose。
在docker-compose.yml里面我有启动django服务器的命令:
command: ["./run/web.sh"]
json 格式的命令应该在 exec 模式下运行。里面web.sh:
#!/usr/bin/env bash
exec python manage.py runserver
当我尝试使用docker-compose stop 停止服务时,它等待了 10 秒(默认超时),然后就终止了服务。在日志中我找到了project_web_1 exited with code 137。
如何用docker stop优雅地停止django runserver?
【问题讨论】:
-
你试过不带 exec 吗?例如:#!/bin/sh python manage.py runserver
-
w/o
exec命令将在单独的上下文中运行,docker 将无法找到命令并发送 SIGTERM。任何其他命令都可以完美运行,但django runserver -
这个命令怎么样?
ps aux | grep runserver | awk '{print $2}' | xargs sudo kill -
我知道如何手动杀死命令,但不知道如何让 docker 杀死它
-
创建一个页面并杀死python本身stackoverflow.com/a/29065968/4883754