Heim  >  Artikel  >  Backend-Entwicklung  >  利用 PHP + MySQL 如何才能开发 Docker 化应用?

利用 PHP + MySQL 如何才能开发 Docker 化应用?

WBOY
WBOYOriginal
2016-07-25 08:46:481243Durchsuche
利用 PHP + MySQL 如何才能开发 Docker 化应用?
      在程序开发中,只会一门技术肯定是不行滴,很多应用的开发都需要运用到多门技术。今天我们就来和大家聊聊,如何基于LAMP 技术栈,用 Docker 镜像的方式搭建一个 Linux + Apache + MySQL + PHP 的应用 。
1、创建 php开发 应用容器
首先,选择官方的 PHP 镜像作为项目的基础镜像。
dockerfile
FROMdaocloud.io/php:5.6-apache
接着,用官方 PHP 镜像内置命令 docker-php-ext-install 安装 PHP 的 MySQL 扩展依赖。
dockerfile
RUNdocker-php-ext-install pdo_mysql
      依赖包通过 docker-php-ext-install 安装,如果依赖包需要配置参数则通过 docker-php-ext-configure 命令。
      安装 pdo_mysql PHP 扩展。
然后,将代码复制到目标目录。
dockerfile
COPY ./var/www/html/
       因为基础镜像内已经声明了暴露端口和启动命令,此处可以省略。
至此,包含 PHP 应用开发的 Docker 容器已经准备好了。PHP 代码中访问数据库所需的参数,是通过读取环境变量的方式声明的。
```php
$serverName =env("MYSQL_PORT_3306_TCP_ADDR", "localhost");
$databaseName = env("MYSQL_INSTANCE_NAME","homestead");
$username = env("MYSQL_USERNAME","homestead");
$password =env("MYSQL_PASSWORD", "secret");
/**
* 获取环境变量
* @param $key
* @param null$default
* @returnnull|string
*/
functionenv($key, $default = null)
{
$value =getenv($key);
if ($value ===false) {
return $default;
www.maiziedu.com
}
return $value;
}
```
为什么要这样做?因为在 Docker化应用开发的最佳实践中,通常将有状态的数据类服务放在另一个容器内运行,并通过容器特有的 link 机制将应用容器与数据容器动态的连接在一起。
2、绑定 本地MySQL 数据容器
首先,需要创建一个 MySQL 容器。
bash
docker run--name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:5.5
之后,通过 Docker 容器间的 link 机制,便可将 MySQL 的默认端口(3306)暴露给应用容器。
bash
docker run--name some-app --link some-mysql:mysql -d app-that-uses-mysql
3、绑定云端MySQL 数据服务
比起本地创建,在云端创建和绑定MySQL 数据服务会更简单。
a、在 GitHub 上 Fork DaoCloud/php-apache-mysql-sample 或者添加自己的代码仓库。
b、注册成为 DaoCloud 用户。
c、在 DaoCloud 「控制台」中选择「代码构建」。
d、创建新项目,选择代码源,开始构建镜像。
e、在「服务集成」创建 MySQL 服务实例。
f、将构建的应用镜像关联 MySQL 服务实例并部署在云端。
      以上就是通过PHP + MySQL 的实现Docker 化应用的具体操作步骤,还有不清楚的亲,可以自己试验一把。



推荐学习:php视频教程  http://www.maiziedu.com/course/php/



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn