gpt4 book ai didi

docker - 将文件从主机复制到 docker 容器,然后提交并推送

转载 作者:行者123 更新时间:2023-12-04 20:03:21 24 4
gpt4 key购买 nike

我在 Ubuntu 中使用 docker。在开发阶段,我从主机中的 Git 中克隆了所有源代码,在 WebStorm 中编辑它们,然后它们在带有 -v /host_dev_src:/container_src 的 docker 容器中与 Node.js 一起运行。以便我可以测试。

然后当我想发送它们进行测试时:我提交了容器并推送了一个新版本。但是当我在测试机上拉取并运行镜像时,源代码丢失了。这是有道理的,因为在测试机器中没有 /host_src可用的。

我目前的解决方法是在测试机器上克隆源代码并使用 -v /host_test_src:/container_src 运行 docker .但我想知道是否可以将源代码直接复制到容器中并避免这种操作。我更喜欢复制、粘贴和运行带有源代码的图像文件,特别是因为我们的测试机器上没有互联网连接。

PS:好像docker cp只支持从容器复制文件到主机。

最佳答案

一种解决方案是在 Dockerfile 中有一个 git clone 步骤,它将源代码添加到图像中。在开发过程中,您可以使用您的 -v 覆盖此代码。论据 docker run这样您就可以在不重建的情况下进行更改。在测试方面,您只需检查更改并构建新镜像。现在您有一个完全独立的单独图像用于测试。

请注意,如果您有 VOLUME Dockerfile 中的指令,您需要确保它发生在 git clone 步骤之后。

这种方法的问题在于,如果您使用的是编译语言,您只希望二进制文件存在于最终镜像中。在这种情况下,需要将 git clone 替换为一些获取或编译二进制文件的代码。

关于docker - 将文件从主机复制到 docker 容器,然后提交并推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27836687/

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