PHP项目怎么Docker化

发布时间:2021-08-21 22:14:17 作者:chen
来源:亿速云 阅读:205

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

文章亮点

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

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

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

快速上手

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

PHP项目怎么Docker化

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

<?php
  echo “Hello Docker!”
?>
FROM php:5.6-cli

COPY . /project
WORKDIR /project
CMD ["php", "./app.php"]

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

通过 COPY 指令,我们把当前目录下的文件,复制到镜像的 /project 目录

CMD 指令设置了镜像默认执行的命令,WORKDIR 则是设置了镜像执行命令时的目录

docker build -t php-app .

这将会生成一个名为 php-app 的镜像

docker run php-app

这时候,容器将会执行我们之前创建的 app.php, 并输出:

Hello Docker!

PHP + MySQL 的Docker化示例

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

<?php
 $mysql = new mysqli('db', 'root', $_ENV['MYSQL_ROOT_PASSWORD']);
 echo 'Connected to mysql: '.$mysql->host_info;
?>

在 index.php 中,我们的 PHP 应用将会通过主机名称 db 连接到 mysql 数据库,同时使用用户名 root, 以及环境变量中的 MYSQL_ROOT_PASSWORD对数据库进行连接。这里简单地通过echo 连接信息来确认 MySQL 连接是否正常。

FROM php:5.6-apache
RUN docker-php-ext-install mysqli
COPY . /var/www/html

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

另外我们通过 RUN 指令运行 docker-php-ext-install mysqli 额外安装了PHP的mysqli扩展

docker build -t php-mysql-app .
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 参数将这个容器设置为后台运行

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

我们运行了之前构建的 php-mysql-app 镜像,并将上一步创建的 mysql-instance 这个MySQL容器和它连接,同时我们把MySQL的root密码通过环境变量MYSQL_ROOT_PASSWORD传到容器内部-p 8080:80 将容器的 80 端口映射到了主机的 8080 端口

Connected to mysql: db via TCP/IP

我们将从浏览器得到 index.php 的执行结果。

基于cSphere 私有Docker Registry的镜像自动构建

在一个Docker化的项目中,项目的Docker镜像成为了项目交付的最终元件。因此在项目的持续集成和持续交付环节中,镜像的自动构建是必不可少的一个环节。

这里介绍如何利用cSphere的私有镜像仓库配置镜像自动构建,实现在代码Push到仓库之后,自动构建Docker镜像。

在通过cSphere的镜像仓库页面,点击新建镜像仓库按钮,根据提示即可成功创建一个私有的镜像仓库.

PHP项目怎么Docker化

到此,关于“PHP项目怎么Docker化”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 服务 Docker 化
  2. docker-compose如何部署php项目

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker php

上一篇:HIVE实现wordcount的过程

下一篇:如何使用perl递归找出菜单路径

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》