gpt4 book ai didi

docker - 使用来自不同存储库的代码运行多个 Docker 容器的最佳实践是什么?

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

我有一个 Web 应用程序,它包含多个存储库中的多个服务(包括 postgres db 和 redis)。理想情况下,我希望将所有 Docker 的东西都放在一个仓库中,然后从那里构建。但是,我遇到了麻烦,因为构建容器涉及在其他目录(或存储库)中编译代码,而您不能 ADD从不同的目录。符号链接(symbolic link)也不起作用。而且我不想从 github 拉到容器中,以避免在野外使用 ssh key 。有没有办法完成我想做的事情?还是每个 repo 都需要自己的 Dockerfile?

最佳答案

最好为每个项目维护一个 dockerfile 并使每个项目独立于其他项目,以便您可以单独构建每个项目。

但是,如果您不能这样做,则可以使用一些解决方法。

您的问题是 docker build 上下文限制了可以访问文件的范围。我建议您将 docker build 包装在一个脚本中,该脚本收集所有依赖项并发出构建命令。该脚本可能如下所示:

mkdir build-dir

cp <path-to-file1> build-dir/file1
cp <path-to-file2> build-dirfile2
cp <path-to-Dockerfile> build-dir/Dockerfile
...
docker build -t image .
rm -rf build-dir

并且 Dockerfile 将是透明的,因为它假定所有依赖项都在构建上下文中。
FROM ...
ADD file1 file1
ADD file2 file2

...

关于docker - 使用来自不同存储库的代码运行多个 Docker 容器的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47356662/

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