目标:我们将为之前创建的 PHP + MySQL 应用配置由 New Relic 提供的应用监控探针。
本项目代码维护在 DaoCloud/php-newrelic-sample 项目中。
因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行,DaoCloud 提供了一套境内镜像源,并与官方源保持同步。
FROM daocloud.io/php:5.6-apache
# 安装 New Relic
RUN mkdir -p /etc/apt/sources.list.d \
&& echo 'deb http://apt.newrelic.com/debian/ newrelic non-free' \
>> /etc/apt/sources.list.d/newrelic.list \
# 添加 New Relic APT 下载时用来验证的 GPG 公钥
&& curl -s https://download.newrelic.com/548C16BF.gpg \
| apt-key add - \
# 安装 New Relic PHP 代理
&& apt-get update \
&& apt-get install -y newrelic-php5 \
&& newrelic-install install \
# 用完包管理器后安排打扫卫生可以显著的减少镜像大小
&& apt-get clean \
&& apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
apt-get update
下载从仓库的软件包列表并获取软件包版本信息。apt-get install -y newrelic-php5
安装 New Relic PHP5 扩展。# 覆盖 New Relic 配置文件
RUN sed -i 's/"REPLACE_WITH_REAL_KEY"/\${NEW_RELIC_LICENSE_KEY}/g' \
/usr/local/etc/php/conf.d/newrelic.ini
RUN sed -i 's/"PHP Application"/\${NEW_RELIC_APP_NAME}/g' \
/usr/local/etc/php/conf.d/newrelic.ini
newrelic.appname
和 newrelic.license
按照 DaoCloud 最佳实践通过环境变量的方式暴露出来。至此,我们 New Relic 的配置全部完成了,将代码复制到指定目录,并执行构建镜像命令完成我们镜像构建的最后一步。
# /var/www/html/ 为 Apache 目录
COPY src/ /var/www/html/
docker build -t php-newrelic-image .
最后,我们将构建好的镜像运行起来
docker run \
--name php-newrelic \
-e NEW_RELIC_LICENSE_KEY=my-newrelic-license \
-e NEW_RELIC_APP_NAME=my-app-name \
-d \
php-newrelic-image
--name
参数,指定容器的名称。-e
参数,容器启动时会将环境变量注入到容器中。-d
参数,容器在启动时会进入后台运行。php-newrelic-image
是由我们上面的 Dockerfile
构建出来的镜像。比起本地创建,在云端创建会更简单。
NEW_RELIC_APP_NAME
和 NEW_RELIC_LICENSE_KEY
环境变量。DaoCloud 使用图文介绍