-1

您好,我想将At命令添加到 docker 容器。我正在使用 linux alpine 。我尝试使用apk add atapk add atd它给了我同样的错误。

错误:不可满足的约束:atd(缺失):要求:world[atd]

有没有办法解决这个问题,或者有没有办法使用 apt-get,因为 at 存在于 apt-get

4

2 回答 2

3

看起来就像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
于 2020-09-29T17:48:54.390 回答
0

我只想添加到@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?
于 2021-06-22T02:32:51.427 回答