从 MAMP 到 Docker 的 Web 开发过渡

Posted

技术标签:

【中文标题】从 MAMP 到 Docker 的 Web 开发过渡【英文标题】:Web development transition from MAMP to Docker 【发布时间】:2015-03-12 08:59:13 【问题描述】:

我是 Docker 新手,我很难将其核心技术应用到我目前的 Web 开发中。使用 MAMP,您只需下载应用程序,将 php/html 文件放在 /htdocs 上,启动服务器,然后转到 http://localhost:8888/ 以查看您的 webapp。现在,使用 docker,我想知道我该怎么做。到目前为止,我所做的是从 Docker Hub 拉取 http、php 和 mysql 镜像。

    如何将这三个图像链接在一起以使它们工作?或者我应该如何同时运行它们? 我应该将 /htdocs 放在哪里,或者如何访问它? MAMP 有一个用于数据库访问的 phpMyAdmin,Docker 有这样的东西吗?

我正在使用带有 boot2docker v1.4.1 和 VirtualBox 4.3.20 的 Mac OS X Yosemite (10.10.1)。

【问题讨论】:

【参考方案1】:

您现在可以使用docker-compose 和 docker-compose.yml 文件来完成与图相同的事情。

为每个服务找到容器并将它们链接在一起并不是一件容易的事。 The damp github project 的 docker-compose 文件(为后代粘贴在下面)是如何让 apache、php 和 mysql 服务全部使用 docker-compose -f docker-compose.yml up 命令运行的良好开端。

proxy:
    image: jwilder/nginx-proxy
    ports: ['80:80']
    volumes: ['/var/run/docker.sock:/tmp/docker.sock:ro']
    environment: [DEFAULT_HOST=damp.dev]
database:
    image: 'mysql:5.7'
    ports: ['3306:3306']
    environment: [MYSQL_ROOT_PASSWORD=password]
phpmyadmin:
    image: corbinu/docker-phpmyadmin
    links: ['database:mysql']
    environment: [MYSQL_USERNAME=root, MYSQL_ROOT_PASSWORD=password, VIRTUAL_HOST=phpmyadmin.damp.dev]
damp:
    image: httpd
    volumes: ['~/damp/damp:/usr/local/apache2/htdocs']
    environment: [VIRTUAL_HOST=damp.dev]

一旦你这样做_并在你的主机文件中输入一个damp.dev 127.0.0.1 的条目,你安装在 ~/damp/damp 中的任何东西(每第二行到最后一行)都将被放入 docker 容器的 htdocs 并提供服务在 damp.dev/[whatever] 上。

damp 只是我发现的第一个关于如何使用 docker 复制 MAMP 的示例。最需要注意的是,您可以使用docker-compose 而不是fig。 Compose is based directly on the Fig codebase and is backwards-compatible with Fig applications.

【讨论】:

【参考方案2】:
    如何将这三个图像链接在一起以使其正常工作?或者我应该如何同时运行它们?

使用fig 定义和链接容器。

    我应该将 /htdocs 放在哪里或如何访问它?

这完全取决于您的容器配置。你可以试试 DockerHub 的PHP with Apache。有关将文件放置在何处的说明,请参阅文档。

    MAMP 有一个用于数据库访问的 phpMyAdmin,Docker 有这样的东西吗?

当然,一个 Docker 容器;)search DockerHub

【讨论】:

插件:我正在开发一个PHP application template,它可以给你一些想法,它也可以在 XAMP & co 本地运行。

以上是关于从 MAMP 到 Docker 的 Web 开发过渡的主要内容,如果未能解决你的问题,请参考以下文章

MAMP Pro 中的 HTTP2 支持

以 MAMP 为 Mac OS X 安装并设置 PHP开发环境

php、mysql 和 phpmyadmin、MAMP 或 homebrew [关闭]

使用 MAMP 时如何将图像添加到 wordpress 主题?

从过期的 MAMP Pro 试用版迁移到 MAMP 的免费版 (OSX) 后显示 Wordpress 安装页面

MAC MAMP 中安装配置使用 ThinkPHP