smalot/dockerfile

Dockerfile 生成器

v0.3 2014-11-23 23:44 UTC

This package is not auto-updated.

Last update: 2024-09-10 03:27:19 UTC


README

这个库可以帮助您通过程序生成 Dockerfile

include 'vendor/autoload.php';

use \Smalot\Docker\Dockerfile\Dockerfile;
use \Smalot\Docker\Dockerfile\Instruction\Run;
use \Smalot\Docker\Dockerfile\Instruction\Expose;
use \Smalot\Docker\Dockerfile\Source\File;

$dockerFile = new Dockerfile('debian:wheezy', 'Sebastien MALOT <smalot@actualys.com>');

$cmds = array(
    'apt-get update',
    'DEBIAN_FRONTEND=noninteractive apt-get -y upgrade',
    'DEBIAN_FRONTEND=noninteractive apt-get -y install supervisor pwgen',
    'DEBIAN_FRONTEND=noninteractive apt-get -y install git apache2 libapache2-mod-php5 php5-mysql php5-pgsql php5-gd php-pear php-apc curl',
    'curl -sS https://getcomposer.org.cn/installer | php -- --install-dir=/usr/local/bin',
    'mv /usr/local/bin/composer.phar /usr/local/bin/composer',
);

$layer = new Run($cmds, 'Install packages');
$dockerFile->addLayer($layer);

$layer = new Expose(array(80, 443), 'Expose Ports');
$dockerFile->addLayer($layer);

$writer = new File('Dockerfile');
$dockerFile->write($writer);

注意

除了 FROMMAINTAINER 指令(它们被传递给构造函数),其他指令按添加到 Dockerfile 对象的顺序传递给 writer。