【问题标题】:Using Docker to share projects to work on, on Windows 10?在 Windows 10 上使用 Docker 共享要处理的项目?
【发布时间】:2019-02-15 13:35:55
【问题描述】:

我是一名初级网络开发人员,在一家小型网络代理机构工作。我们在 Windows 10 上工作,使用 wampserver,主要使用 Prestashop、Wordpress 和 Symfony 网站。对于每项任务,我都会得到一张“票”,我必须在新分支上开发(如果需要)。工作完成后,我将我的分支合并到托管在预生产服务器上的开发分支上,如果认为没问题,然后将其合并到主分支上,这是托管在另一台服务器上的生产网站。

我的任务是对 Docker 进行一些研究,并找出它可以如何改进我们的工作流程。

但据我了解,docker 容器只是类似于虚拟机,仅用于构建隔离环境以测试应用程序而无需考虑依赖关系。

但是考虑到我们已经有一个预生产服务器,我看不出使用 Docker 的意义吗?我错过了什么吗?

另外,Docker 是否可以用于在团队成员之间共享项目(我们都在 Windows 上工作)? (例如,一个开发人员在本地开发一个网站,他能否创建一个容器及其镜像,无需其他开发人员对其进行配置即可立即使用它?)

【问题讨论】:

    标签: windows docker dockerfile


    【解决方案1】:

    但据我了解,docker 容器只是类似于虚拟机,仅用于构建隔离环境以测试应用程序而无需考虑依赖关系。

    不,Docker 容器不仅对测试有用。

    使用 Docker 构建正确的工作流程时,如果都使用相同的 Docker 映像,您可以在开发、暂存和生产之间实现 100% 的对等。

    但是考虑到我们已经有一个预生产服务器,我看不出使用 Docker 的意义吗?我错过了什么吗?

    这个预生产服务器,也就是通常所说的staging 服务器也应该使用 docker 来运行代码。

    另外,Docker 是否可以用于在团队成员之间共享项目(我们都在 Windows 上工作)? (例如,一个开发人员在本地开发一个网站,他能否创建一个容器及其镜像,无需其他开发人员对其进行配置即可立即使用它?)

    是的...您创建的基础 docker 镜像只包含在生产环境中运行所需的东西,并且您可以使用必要的开发人员工具从它们构建其他 docker 镜像。

    生产图片company/app-name:

    FROM php:alpine
    
    # other your production dependencies here
    

    假设那些构建名为 company/app-name 的 docker 镜像,然后是用于开发的镜像。

    开发图company/app-name-dev

    FROM company/app-name
    
    # add here only developer tools
    

    现在开发者在开发过程中同时使用company/app-namecompany/app-name-dev 两个镜像,并且在登台服务器中只有company/app-name docker 镜像将用于运行代码。

    在此流程中进行了数月的交互后,您甚至可能充满信心开始使用 company/app-name 将应用程序部署到生产环境,现在您可以在开发、暂存和生产之间使用 100% 平价。

    看看Php Docker Stack 以获得一些灵感,因为我在为我的最新工作而构建它时考虑到了这个目标,但是当我们在开发过程中采用它时我最终离开了公司。 .

    但是不要将你需要的所有服务都放在一个 docker 镜像中,因为这在 docker 中是一种不好的做法,而是每个 docker 镜像使用一个服务,比如一个服务用于 PHP,另一个用于数据库,另一个用于 Nginx 服务器等。请参阅here 如何使用 docker compose 组合多个服务。

    【讨论】:

    • 好的,非常感谢,这是一个非常完整的答案。从我收到的反对票来看,我猜这是一个愚蠢的问题,但我清楚地提到我是一名初级开发人员,所以我不明白。无论如何,非常感谢您的建议和您的 docker 堆栈,它肯定会对我有所帮助。
    • 很高兴能够提供帮助...如果 Php Docker Stack 不能在 Windows 上运行,请告诉我,切勿在那里进行测试。
    • 好的,我一测试就给你反馈。再次感谢。
    猜你喜欢
    • 2016-03-13
    • 2021-05-15
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多