【问题标题】:How to manage docker-compose.override.yml file between macOS and Windows?如何在 macOS 和 Windows 之间管理 docker-compose.override.yml 文件?
【发布时间】:2021-10-25 21:13:37
【问题描述】:

情况是我有三个开发人员在做一个项目。一名开发人员使用 Mac OS X,另外两名开发人员使用 Windows 10 Pro 机器。我的项目由 .NET Core 3.1 SDK 组成,并利用 docker 支持运行。它最初是在 Windows 中创建的,因此 docker-compose.override.yml 文件在 Volumes 下具有以下代码行:

- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

这在 Windows 环境下完美运行。然而,在 Mac OS X 端,开发人员必须不断更新 docker-compose.override.yml 卷链接的配置,如下所示:

- ~/.microsoft/usersecrets:/root/.microsoft/usersecrets:ro
- ~/.aspnet/https:/root/.aspnet/https:ro

有没有人处理过这样的情况?除了要求开发人员在他们的 Mac 上进行 BootCamp 或虚拟化 Windows 10 之外,您还做了什么来克服它?

更新:

我刚刚尝试更新 docker-compose.override.yml 文件以接受 Mac OS X 卷行。我在我的 Windows 机器和 Mac OS X 机器上运行它。它似乎工作正常。我已联系我的开发人员在他们的机器上进行测试,看看它是否可以工作。一旦我得到他们的回复,我会更新这个问题。

更新 #2:

看起来我在两个平台上的开发人员都能够使用 Mac OS X Volume 行来运行 docker-compose 项目。

【问题讨论】:

    标签: windows macos docker docker-compose


    【解决方案1】:

    想到几个选项:

    • 让 Windows 开发人员使用 WSL,以便路径与 Mac OS X 匹配
    • 为每个路径声明环境变量并在配置中引用这些变量
    • 有一个额外的 compose 文件,其中包含卷声明,但未检入源代码管理,因此不会被覆盖

    我没有做过任何这些,所以不能说是否有任何陷阱,但我过去在发生这种情况的非 Docker 项目中使用的第 2 和第 3 方法。

    【讨论】:

    • 谢谢@chedabob 你能提供更多关于#2 的细节吗?这可能是最简单的。
    • 我不确定你是否可以在那个地方使用环境变量。
    • @sroye98 开发人员将通过他们喜欢的方法导出变量(例如通过控制面板 -> Windows 上的系统,在 Mac OS 上使用export),然后像APPDATA 一样引用它们你的第一个sn-p
    猜你喜欢
    • 2015-02-05
    • 1970-01-01
    • 2021-01-03
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多