gpt4 book ai didi

docker - docker run 命令的两个 apt-get 参数不起作用

转载 作者:行者123 更新时间:2023-12-02 18:17:18 25 4
gpt4 key购买 nike

使用 this official Python image我正在尝试使用 docker.run 提供一些参数命令。

docker run -it --rm --name myserver -v "$PWD":/usr/src/myapp 
-w /usr/src/myapp python:3-slim apt-get update && apt-get install libpq-dev -y

首先它显示 apt-get update 的输出,但随后它返回:
apt-get: command not found

但不知何故,这会正确输出 START ,然后是 apt-get 更新输出和 NEXT在抛出错误之前:
docker run -it --rm --name myserver -v "$PWD":/usr/src/myapp 
-w /usr/src/myapp python:3-slim echo "START" && apt-get -y update && echo "NEXT" && apt-get install libpq-dev -y

好像不能执行多个 apt-get命令。为什么 echo工作,但第二个 apt-get不是?

最佳答案

为了确保这些命令在 docker 上下文中执行,您可以将它们绑定(bind)在 bash session 中:

docker run -it --rm --name myserver -v "$PWD":/usr/src/myapp \
-w /usr/src/myapp python:3-slim \
/bin/bash -xec 'apt-get update && apt-get install libpq-dev -y'

这样, &&由正确的 shell 解释(在容器中执行的那个),而不是执行 docker run 的那个.

但更好的做法是使用新的 Dockerfile 定义一个新的镜像,这些命令在 RUN 中。指令,以便拥有一个带有 libpq-dev 的容器准备使用。

关于docker - docker run 命令的两个 apt-get 参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29592330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com