Пример #1
0
 public function start($argv = null)
 {
     // workaround for RubbishThorClone bug
     if ($argv !== null) {
         parent::start($argv);
         return;
     }
     $this->whippet_init();
     # Ensure data container exists
     exec('docker run --label=com.dxw.whippet=true --label=com.dxw.data=true --name=' . escapeshellarg($this->mysql_data) . ' -v /var/lib/mysql mysql /bin/true 2>/dev/null');
     # Stop/delete existing containers
     echo "Stopping already-running containers\n";
     $this->_stop();
     $output = null;
     $return = null;
     # Start other containers
     exec('docker run -d --label=com.dxw.whippet=true --label=com.dxw.data=false --name=whippet_mailcatcher -p 1080:1080 schickling/mailcatcher 2>/dev/null', $output, $return);
     if ($return !== 0) {
         echo "Mailcatcher container failed to start\n";
         exit(1);
     }
     exec('docker run -d --label=com.dxw.whippet=true --label=com.dxw.data=false --name=whippet_beanstalk schickling/beanstalkd 2>/dev/null', $output, $return);
     if ($return !== 0) {
         echo "Beanstalk container failed to start\n";
         exit(1);
     }
     exec('docker run -d --label=com.dxw.whippet=true --label=com.dxw.data=false --name=whippet_mysql --volumes-from=' . escapeshellarg($this->mysql_data) . ' -e MYSQL_DATABASE=wordpress -e MYSQL_ROOT_PASSWORD=foobar mysql 2>/dev/null', $output, $return);
     if ($return !== 0) {
         echo "MySQL container failed to start\n";
         exit(1);
     }
     exec('docker run -d --label=com.dxw.whippet=true --label=com.dxw.data=false --name=whippet_wordpress -v ' . escapeshellarg($this->project_dir) . ':/usr/src/app -v ' . escapeshellarg($this->project_dir) . '/wp-content:/var/www/html/wp-content -p 80:80 --link=whippet_mysql:mysql --link=whippet_mailcatcher:mailcatcher --link=whippet_beanstalk:beanstalk -e PROJECT_ID=' . escapeshellarg(md5($this->project_dir)) . ' thedxw/whippet-wordpress 2>/dev/null', $output, $return);
     if ($return !== 0) {
         echo "WordPress container failed to start\n";
         exit(1);
     }
     echo "Started whippet containers\n";
 }
Пример #2
0
 public function __construct()
 {
     parent::__construct();
     $this->factory = new \Dxw\Whippet\Factory();
     $this->projectDirectory = \Dxw\Whippet\ProjectDirectory::find(getcwd());
 }