【问题标题】:Docker & Docker Compose - COPY for prod image but mount volume for devDocker & Docker Compose - 复制用于生产映像,但安装卷用于开发
【发布时间】:2017-10-12 10:08:53
【问题描述】:

我正在构建一个小型 NodeJS/Express 应用程序,并将其 Dockersing 并部署到 Compute Engine。我已经为开发设置了我的 docker-compose.yml(即我正在挂载我的源目录,这样我就可以在不重建的情况下进行更改)。

当我准备好进行生产时,我将构建我的映像并将其推送到 Google Cloud 上的容器注册表。当我这样做时,我想将我的源代码烘焙到图像中。注意:这是一个单人项目,我没有设置任何类型的 CI。我可以在我的Dockerfile 中使用COPY 执行此操作,但我使用相同的Dockerfile 进行开发。是否可以使用不同的Dockerfile 进行生产和开发,或者我是否有一种方法可以在Dockerfile 本身内有条件地执行此操作?比如……

if ENV=production
  COPY blah ./
  ...

【问题讨论】:

    标签: node.js express docker docker-compose google-compute-engine


    【解决方案1】:

    最佳实践是为生产、开发和测试保留单独的 docker 文件 原因是这三个阶段可以使用不同的环境,并且从长远来看很容易维护

    始终保持 docker 文件最小化并使用 .sh 脚本进行逻辑工作

    【讨论】:

    • 感谢卡拉纳米特。实际上,我能够同时进行(复制和挂载)而没有副作用,因此只需要一个 Dockerfile 并使用 .dockerignore
    • @PeterLudlow 有什么方法可以提供更多关于您找到的解决方案的详细信息吗?
    猜你喜欢
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    相关资源
    最近更新 更多