2017 © Pedro PelĂĄez
 

library laravel-docker-containers

Automate your docker containers with artisan

image

idrislab/laravel-docker-containers

Automate your docker containers with artisan

  • Thursday, February 9, 2017
  • by idrislab
  • Repository
  • 2 Watchers
  • 4 Stars
  • 17 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 9 Versions
  • 0 % Grown

The README.md

Laravel Docker Containers

Automate your docker containers inside Laravel, (*1)

Setup

Requirements

Docker >= 1.13, (*2)

Laravel >= 5.3.*, (*3)

PHP >= 5.6.4, (*4)

Installation

composer require idrislab/laravel-docker-containers

Set the following environment variable(inside your .env file), (*5)

DOCKER_SOCKET=unix:///var/run/docker.sock

Create a new Artisan command, (*6)

php artisan make:command Containers

Register the new command with Artisan in app/Console/Kernel.php, (*7)

protected $commands = [
       Commands\Containers::class,
  ];

Update your Containers command to register containers shipped by default, (*8)

<?php

namespace App\Console\Commands;

use luisgros\docker\containers\MySQL;
use luisgros\docker\containers\Redis;
use luisgros\docker\ContainersCommand;

class Containers extends ContainersCommand
{
    protected $containers = [
        MySQL::class,
        Redis::class,
    ];
}

Usage

php artisan containers <start|stop|restart> [container(s)]

Examples

Starting all containers, (*9)

php artisan containers start

Stopping and starting multiple containers, (*10)

php artisan containers start mysql redis

Stopping one container, (*11)

php artisan containers stop mysql

Adding custom containers

Create a directory inside app/ named Containers and create a file named MySQLGroupReplication.php with the following:, (*12)

``` php <?php namespace App\Containers;, (*13)

use luisgros\docker\containers\Container;, (*14)

class MySQLGroupReplication extends Container { /** * @var string */ public $repo = 'mysql/mysql-gr'; /** * @var string */ public $tag = 'latest'; /** * @var string */ public $network = 'group1'; /** * @var string */ public $instances = 3;, (*15)

/**
 * @return array
 */
public function runCommand()
{
    return [
            '-d --rm --net=group1 -e MYSQL_ROOT_PASSWORD=ENV[DB_PASSWORD] \\'.
            '-e MYSQL_REPLICATION_USER=ENV[DB_PASSWORD] -e MYSQL_REPLICATION_PASSWORD=ENV[DB_PASSWORD] \\'.
            'mysql/mysql-gr --group_replication_group_seeds=\'ENV[CONTAINER_I2]:6606,ENV[CONTAINER_I3]:6606\' \\'.
            '--server-id=ENV[INSTANCE_ID]',

            '-d --rm --net=group1 -e MYSQL_ROOT_PASSWORD=ENV[DB_PASSWORD] \\'.
            '-e MYSQL_REPLICATION_USER=ENV[DB_PASSWORD] -e MYSQL_REPLICATION_PASSWORD=ENV[DB_PASSWORD] \\'.
            'mysql/mysql-gr --group_replication_group_seeds=\'ENV[CONTAINER_I1]:6606,ENV[CONTAINER_I3]:6606\' \\'.
            '--server-id=ENV[INSTANCE_ID]',

            '-d --rm --net=group1 -e MYSQL_ROOT_PASSWORD=ENV[DB_PASSWORD] \\'.
            '-e MYSQL_REPLICATION_USER=ENV[DB_PASSWORD] -e MYSQL_REPLICATION_PASSWORD=ENV[DB_PASSWORD] \\'.
            'mysql/mysql-gr --group_replication_group_seeds=\'ENV[CONTAINER_I1]:6606,ENV[CONTAINER_I2]:6606\' \\'.
            '--server-id=ENV[INSTANCE_ID]',
    ];
}

public function preCommand()
{
    $this->docker('network create group1 &>/dev/null');
}

}, (*16)


Update your *app/Console/Commands/Containers.php* command to register the new container ```php <?php namespace App\Console\Commands; use App\Containers\MySQLGroupReplication; use luisgros\docker\containers\MySQL; use luisgros\docker\containers\Redis; use luisgros\docker\ContainersCommand; class Containers extends ContainersCommand { protected $containers = [ MySQL::class, Redis::class, MySQLGroupReplication::class, ]; }

Start your container, (*17)

php artisan containers start mysqlgroupreplication

The Versions

09/02 2017

dev-develop

dev-develop

Automate your docker containers with artisan

  Sources   Download

MIT

The Requires

 

by LuĂ­s Pitta GrĂłs

laravel docker containers automate

09/02 2017

dev-master

9999999-dev

Automate your docker containers with artisan

  Sources   Download

MIT

The Requires

 

by LuĂ­s Pitta GrĂłs

laravel docker containers automate

06/12 2016

v0.2.1

0.2.1.0

Automate your docker containers inside laravel

  Sources   Download

MIT

The Requires

 

by LuĂ­s Pitta GrĂłs

laravel docker containers automate

05/12 2016

v0.2.0

0.2.0.0

Automate your docker containers inside laravel

  Sources   Download

MIT

The Requires

 

by LuĂ­s Pitta GrĂłs

laravel docker containers automate

04/12 2016

v0.1.4

0.1.4.0

Laravel docker services

  Sources   Download

MIT

The Requires

 

by LuĂ­s Pitta GrĂłs

laravel services docker

04/12 2016

v0.1.3

0.1.3.0

Laravel docker services

  Sources   Download

MIT

The Requires

 

by LuĂ­s Pitta GrĂłs

laravel services docker

04/12 2016

v0.1.2

0.1.2.0

Laravel docker services

  Sources   Download

MIT

The Requires

 

by LuĂ­s Pitta GrĂłs

laravel services docker

04/12 2016
04/12 2016