/bin/sh: apt-get: 未找到
Posted
技术标签:
【中文标题】/bin/sh: apt-get: 未找到【英文标题】:/bin/sh: apt-get: not found 【发布时间】:2017-12-21 21:49:28 【问题描述】:我正在尝试更改 dockerFile 以使用 aspell。我有一个 bash 脚本,我想将它封装在一个扩展坞中
Step 4: Wrap the script in a Docker container.
The sample SDK we downloaded earlier contains an example of an action wrapped in a Docker container. In particular, the sample SDK includes a Dockerfile that builds the C program in client/example.c and installs the binary as /blackbox/client/action .
The key line in the sample Dockerfile is:
RUN cd /blackbox/client; gcc -o action example.c
Instead of compiling example.c and installing the binary as an action, we’ll change the Dockerfile to install aspell into the Linux environment, and then install our action.sh script as the executable action command.
To do so, we delete the RUN command above, and insert the following commands into the 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"]
本教程已过时,因此我无法成功。你能帮帮我吗?
【问题讨论】:
docker 容器不是基于 Debian 的吗?如果它不是基于 Debian,apt 包管理将不起作用。 我处于一个非常愚蠢的位置,基本上与当前的问题无关,但也许可以拯救另一个降落在这里的 Google 员工——当我打算运行docker run -it ubuntu:latest
时,我运行了 docker run ubuntu:latest
。我以为我在容器内运行apt-get
,但它实际上是在 Mac 终端中。哎呀。
【参考方案1】:
image you're using 是Alpine based,所以你不能使用apt-get
,因为它是 Ubuntu 的包管理器。
要解决这个问题,只需使用:
apk update
和 apk add
【讨论】:
这是否破坏了开始使用 Alpine 的原因,还是仍然保持 Alpine 图像相当轻量级? 如何更改以下命令? hub.docker.com/r/buildkite/puppeteer/dockerfile【参考方案2】:如果您在创建镜像时正在查看 dockerfile,请添加以下行:
RUN apk add --update yourPackageName
【讨论】:
以上是关于/bin/sh: apt-get: 未找到的主要内容,如果未能解决你的问题,请参考以下文章
docker alpine /bin/sh script.sh 未找到
帮助基本的 shell 脚本。 /bin/sh:来源:未找到