gpt4 book ai didi

docker - docker run 后自动删除文件

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

让我有一个 Dockerfile

FROM python:3
ADD script.py /
CMD [ "python", "script.py" ]

script.py 无休止地将一些日志打印到输出中。

我想运行一个从这个 Dockerfile 构建的容器,它将把日志打印到输出中,并自动删除这个容器中的 script.py。

例如,我可以更改 Dockerfile 或者我可以更改“docker run”命令的选项

我试过类似的东西:
docker run -it my_image /bin/bash -c "python /script.py; rm /script.py"

但我没有成功。我也尝试将两条指令移动到 CMD 中,但也没有成功

最佳答案

如果我理解正确,您想提供一个没有 python 脚本源的 Docker 镜像,但它仍然能够执行该 Python 脚本。

您可以使用 2 个相关功能来做到这一点:

  • Python可以编译.py文件到 .pyc文件(基本上只是预先解析的 python 文件,它们不是 native 代码)。
  • Docker 可以在构建过程中使用多个镜像,以允许镜像不包含构建的整个“历史”。

  • 假设一个名为 hello.py 的 Python 脚本你可以这样做 Dockerfile :
    FROM python:3 as build
    ADD hello.py /
    RUN [ "python", "-m", "compileall", "-l", "-b", "."]

    FROM python:3 as release
    COPY --from=build /hello.pyc /
    CMD [ "python", "hello.pyc" ]

    关于docker - docker run 后自动删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61459854/

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