【发布时间】:2021-12-01 04:59:18
【问题描述】:
当我使用带有入口点的docker-compose up 重新启动容器时,它不是无状态的,它会保留先前执行入口点的上下文。
docker-compose 文件:
version: '3.8'
services:
test:
image: debian:buster-slim
entrypoint: ["/entrypoint.sh"]
volumes:
- ./entrypoint.sh:/entrypoint.sh
command: ["echo", "100"]
entrypoint.sh 文件:
#!/bin/bash
set -e
set -x
mkdir folder
exec "$@"
第一次登录
Creating network "test_compose_entrypoint_default" with the default driver
Creating test_compose_entrypoint_test_1 ... done
Attaching to test_compose_entrypoint_test_1
test_1 | + mkdir folder
test_1 | + exec echo 100
test_1 | 100
如果我重新运行 docker-compose up ,第二次登录
Starting test_compose_entrypoint_test_1 ... done
Attaching to test_compose_entrypoint_test_1
test_1 | + mkdir folder
test_1 | mkdir: cannot create directory 'folder': File exists
test_compose_entrypoint_test_1 exited with code 1
如果我运行docker-compose down 然后它再次运行,但不可能连续运行两次。
【问题讨论】:
-
你没有重启,那是因为你看到了错误,你的容器还在运行,要重启它你需要运行
docker-compose restart -
我试过
docker-compose restart同样的问题
标签: docker docker-compose stateless docker-entrypoint