PHP项目怎么码头工人化

  介绍

这篇文章主要介绍”PHP项目怎么码头工人化”,在日常操作中,相信很多人在PHP项目怎么码头工人化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“PHP项目怎么码头工人化”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

文章亮点

<李>

将PHP应用及其依赖的服务容器化步骤

<李>

如何将应用容器镜像的构建自动化

<李>

应用容器如何快速部署到测试环境和生产环境中

快速上手

PHP官方在,http://hub.docker.com 上维护了官方的PHP码头工人镜像,包含了从PHP 5.5到7.0的多种不同版本的镜像。

 PHP项目怎么码头工人化

我们将以PHP官方的码头工人镜像为基础,介绍如何将一个简单的PHP应用码头工人化。

<李>

创建一个新目录php-quickstart,作为我们的项目目录

<李>

在项目目录下创建文件app.php

 & lt; PHP ?
  echo 才能;“Hello 码头工人!”
  ?在
<李>

在项目目录下创建文件Dockerfile

<>之前得到cli php: 5.6      COPY 只/项目   WORKDIR /项目   CMD  [“php",“。/app.php"]

上述Dockerfile中,通过,从,<代码>指令,我们将官方的,php - 5.6 - cli <代码> ,作为我们的基础镜像。

通过,<代码> 复制,指令,我们把当前目录下的文件,复制到镜像的,<代码>/项目,目录

<代码> CMD> WORKDIR> <李>

构建镜像

 docker  build  -t  php-app 。

这将会生成一个名为,<代码> php-app> <李>

运行容器

 docker  run  php-app 

这时候,容器将会执行我们之前创建的,<代码>应用程序。php代码>

 Hello 码头工人!

PHP + MySQL的码头工人化示例

接下来,我们通过一个PHP + MySQL的例子,介绍PHP应用码头工人化之后,如何连接数据库。

<李>

创建一个新的目录PHP MySQL作为我们的项目目录

 & lt; PHP ?
  ,mysql 美元;=,new  mysqli (& # 39; db # 39;,, & # 39;根# 39;,,美元_ENV [& # 39; MYSQL_ROOT_PASSWORD& # 39;]);
  ,echo  & # 39; Connected 用mysql:, & # 39;。美元mysql→host_info;
  ?在

在,<代码> index . PHP代码,中,我们的PHP应用将会通过主机名称,<代码> db> 根> MYSQL_ROOT_PASSWORD> <李>

在项目目录下创建Dockerfile

<>之前得到PHP: 5.6 apache   RUN  docker-php-ext-install  mysqli   COPY 只/var/www/html

这里我们使用的是官方的,<代码> php: apache 5.6 ,镜像,因为我们这一次希望可以直接从浏览器访问这个php应用。

另外我们通过,<代码>运行> docker-php-ext-install mysqli> mysqli 扩展

<李>

构建镜像

 docker  build  -t  php-mysql-app 。
  • 创建 MySQL 容器

docker run --name db -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.6

我们在这里使用官方的 mysql:5.6 镜像创建了一个 MySQL 的容器

--name 参数将容器命名为 db

-e MYSQL_ROOT_PASSWORD=secret 通过环境变量,我们将 MySQL 的 root 用户密码设置为 secret

-d 参数将这个容器设置为后台运行

  • 启动 PHP 容器,并将其连接到 MySQL 容器

docker run --link db -e MYSQL_ROOT_PASSWORD=secret -p 8080:80 php-mysql-app

我们运行了之前构建的 php-mysql-app 镜像,并将上一步创建的 mysql-instance 这个MySQL容器和它连接,同时我们把MySQL的root密码通过环境变量

PHP项目怎么码头工人化