您好,我想将At命令添加到 docker 容器。我正在使用 linux alpine 。我尝试使用apk add at
,apk add atd
它给了我同样的错误。
错误:不可满足的约束:atd(缺失):要求:world[atd]
有没有办法解决这个问题,或者有没有办法使用 apt-get,因为 at 存在于 apt-get
看起来就像at
是可用的:apk add at
这Dockerfile
对我来说很好:
FROM alpine:latest
RUN apk add at
CMD at --help
示例运行:
$ docker build -t at_command_line -f Dockerfile .
$ docker run at_command_line:latest
at: unrecognized option: -
Usage: at [-V] [-q x] [-f file] [-u username] [-mMlbv] timespec ...
at [-V] [-q x] [-f file] [-u username] [-mMlbv] -t time
at -c job ...
atq [-V] [-q x]
at [ -rd ] job ...
atrm [-V] job ...
batch
我只想添加到@ujlbu4 的答案,即atd
一旦容器启动并运行,您需要运行 at 守护程序,否则作业将位于队列中而不会被执行。
示例 Dockerfile:
FROM python:alpine
RUN apk add at
ENTRYPOINT ["atd"]
如果您不运行atd
,您可能会看到以下内容:
$ docker exec -it my_running_container /bin/sh
# echo "echo hi" | at now + 1 minutes
warning: commands will be executed using /bin/sh
job 6 at Mon Jun 21 18:11:00 2021
Can't open /var/run/atd.pid to signal atd. No atd running?