用于PHP-CLI执行的最小Docker镜像

时间:2018-02-14 22:12:46

标签: php bash docker

我想从命令行运行一个php脚本作为oneliner。因为在这台linux机器上没有安装PHP但Docker我想通过运行一个执行脚本的小型PHP Docker镜像来执行PHP解释器,并在完成后删除容器和图像。

我的网络连接速度不快,因此图片应该尽可能小。

脚本process.php应读取当前工作目录中的文件data.json,并在子目录中生成一些文本文件。因此,不需要特殊的PHP模块。

我的问题:

  • 建议在Dockerhub上使用哪个小/最小的即用型图像?
  • 这张图片有多小?
  • 如何编写要在Linux命令行(docker run ...)上执行的一行bash

我对Dockerhub的研究产生了大量的PHP图像,其中包含完整的PHP,并且没有针对主机卷修改进行优化。

1 个答案:

答案 0 :(得分:1)

找到一个接近我需要的解决方案。

脚本process.php

<?php
echo "hello";
$data = json_decode(file_get_contents(__DIR__."/data.json"),true);
file_put_contents("message.txt","message is ".$data["message"]);

数据文件data.json

{
    "message": "hello world"
}

单线:

$ docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp \ 
php:7.2.2-cli-alpine3.6 php process.php

结果是message.txt

message is hello world

不是最小的图像,但是大小为62 MB并在完成后自行移除。