├── Dockerfile ├── README.md └── hello.php /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM daocloud.io/php:5.6-cli 2 | 3 | COPY . /app 4 | WORKDIR /app 5 | CMD [ "php", "./hello.php" ] 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 如何开发一个 PHP 的 Docker 化应用 2 | 3 | > 目标:基于 PHP 的 Docker 基础镜像,开发一个 Docker 化的示例 PHP 应用 。 4 | 5 | > 本项目代码维护在 **[DaoCloud/php-sample](https://github.com/DaoCloud/php-sample)** 项目中。 6 | 7 | ### 基于官方镜像 8 | 9 | > 本次基础镜像使用 PHP 官方镜像,也可以根据自己的项目需求与环境依赖使用 [定制的 PHP 基础镜像]()。 10 | 11 | > 因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行,DaoCloud 提供了一套境内镜像源,并与官方源保持同步。 12 | 13 | 官方镜像维护了自 5.4 版本起的所有 PHP 基础镜像,所有镜像均采用 `debian:jessie` 作为系统镜像。 14 | 15 | 首先,选择官方的 `php:5.6-cli` 镜像作为项目的基础镜像。 16 | 17 | ```dockerfile 18 | FROM daocloud.io/php:5.6-cli 19 | ``` 20 | 21 | 由于该示例代码较为简单,我们采用仅安装 PHP CLI 的 Docker 镜像来运行。 22 | 23 | 接着,将代码复制到目标目录。 24 | 25 | ```dockerfile 26 | COPY . /app 27 | WORKDIR /app 28 | CMD [ "php", "./hello.php" ] 29 | ``` 30 | 31 | `ADD` 与 `COPY` 的区别,总体来说 `ADD` 和 `COPY` 都是添加文件的操作,其中 `ADD` 比 `COPY` 功能更多,`ADD` 允许后面的参数为 URL,还有 `ADD` 添加的文件为压缩包的话,它将自动解压。 32 | 33 | `CMD` 为本次构建出来的镜像运行起来时候默认执行的命令,我们可以通过 `docker run` 的启动命令修改默认运行命令。 34 | 35 | Dockerfile 具体语法请参考:**[Dockerfile](https://docs.docker.com/reference/builder/)**。 36 | 37 | 有了 Dockerfile 以后,我们可以运行下面的命令构建 PHP 应用镜像并命名为 `my-php-app`: 38 | 39 | `docker build -t my-php-app .` 40 | 41 | 最后,让我们从镜像启动容器: 42 | 43 | `docker run my-php-app` 44 | 45 | ```nohighlight 46 | Welcome the world of Docker ! 47 | ``` 48 | 49 | 如果看到这段字符串,那么就说明你成功进入到了一个 Docker 化的世界。 50 | 51 | 欢迎来到 Docker 的世界,这个世界有你意想不到的精彩! 52 | -------------------------------------------------------------------------------- /hello.php: -------------------------------------------------------------------------------- 1 |