【发布时间】:2020-05-22 22:18:05
【问题描述】:
我对 Docker 很陌生,我有这个任务。我需要编写一个配置来创建容器基础设施,以使用 nginx、PHP-FPM 和 MySQL 运行 PHP 应用程序。该应用程序的代码位于远程服务器上的 tarball 中。
到目前为止我做了什么:
- 创建了功能齐全的 nginx、php 和 mysql 容器。
- 手动下载代码,将其解压缩到主机目录并通过绑定挂载挂载到 nginx 和 PHP-FPM 容器。
此设置有效,但我不想将代码保留在本地。我想要的是在其中一个容器的构建步骤中下载它并使用它。我的第一个想法是使用共享卷来存储下载的代码并将这个卷挂载到 nginx 和 PHP-FPM 容器中。但是,如果我从 Dockerfile 之一中执行此操作,我将无权访问已安装的卷(在构建容器后安装卷)。我可以对主机文件系统执行此操作,但这似乎不对。处理它的正确方法是什么?
【问题讨论】:
-
你是否考虑过使用 github 来存储你的代码......所以你的容器会在需要时从那里获取它
-
首先,它是一个 3d 派对代码。所以我不能那样做。但是在我的情况下,从 git 获取有什么不同呢?
-
在 CICD 世界.. 这就是它所做的。在 GitHub 上提交代码,它会自动使用最新代码构建容器。由于不想本地保存,所以建议保存在 github 上。
-
检查这个.. 这有 Private Git 的选项.. 所以你的代码可以安全并且仍然有帮助.. itnext.io/…
-
嘿@Hedin,您是否想过在构建期间使用 curl 或 wget 来复制 tarball 并执行其余步骤?理想情况下,您应该执行 curl 来获取代码、编译/构建代码、设置配置并运行 - Dockerfile 中的所有内容。您不需要挂载卷。