/bin/sh:apt-get:未找到

问题描述 投票:0回答:3

我正在尝试更改 dockerFile 以与 aspell 一起使用。我有一个 bash 脚本,我想将其包装在扩展坞中

第 4 步:将脚本包装在 Docker 容器中。

我们之前下载的示例 SDK 包含包装在 Docker 容器中的操作示例。特别是,示例 SDK 包含一个 Dockerfile,它在 client/example.c 中构建 C 程序并将二进制文件安装为 /blackbox/client/action 。

示例 Dockerfile 中的关键行是:

RUN cd /blackbox/client; gcc -o action example.c

我们不会编译 example.c 并将二进制文件作为操作安装,而是更改 Dockerfile 以将 aspell 安装到 Linux 环境中,然后安装 action.sh 脚本作为可执行操作命令。

为此,我们删除上面的 RUN 命令,并将以下命令插入到 Dockerfile 中:

RUN apt-get install -y aspell
RUN rm -f /blackbox/client/action
ADD action.sh /blackbox/client/action

我正在尝试在下面的 dockerfile 上执行此操作

# Dockerfile for example whisk docker action
FROM openwhisk/dockerskeleton

ENV FLASK_PROXY_PORT 8080

### Add source file(s)
ADD example.c /action/example.c

RUN sudo apt-get install -y aspell
RUN rm -f /blackbox/client/action
ADD action.sh /blackbox/client/action

CMD ["/home/huseyin/bin", "-c", "cd actionProxy && python -u actionproxy.py"]

该教程已过时,因此我不知道如何使其发挥作用。我做错了什么?

bash docker dockerfile aspell
3个回答
687
投票

您正在使用的图像是基于Alpine的,因此您不能使用

apt-get
,因为它是Ubuntu的包管理器。

要解决此问题,只需使用:

apk update
apk add


86
投票

如果您在创建映像时查看 dockerfile 内部,请添加以下行:

RUN apk add --update yourPackageName

0
投票

我的简单解决方案是将

RUN apt...
命令 置于 Dockerfile
 的顶部
,尤其是在
COPY
之前。

© www.soinside.com 2019 - 2024. All rights reserved.