Git Product home page Git Product logo

altia-tech-day-docker's Introduction

Taller Docker: Desarrollando entre contenedores

Instalación docker CE

Timeline

> tty 1

$ sudo groupadd docker  	
$ sudo usermod -aG docker $USER

> tty 1

$ cd $HOME
$ mkdir dockerWorkshop && cd dockerWorkshop
$ docker run hello-world
$ docker ps
$ docker ps -a
$ docker run ubuntu
$ docker ps
$ docker ps -a
$ docker images
$ docker run -it ubuntu
root@f709b1535b47:/#

> tty 2

$ cd $HOME/dockerWorkshop
$ docker run -it node

> tty 3

$ cd $HOME/dockerWorkshop
$ docker ps

> tty 1

root@f709b1535b47:/# top

> tty 3

$ ps afux

> tty 1

root@f709b1535b47:/# Ctrl+C
root@f709b1535b47:/# exit
$ docker run --name=php-fpm php:7.2-fpm

> tty 2

$ Ctrl+C
$ docker exec php-fpm php -v
$ docker run -p 8080:80 -it --name=php-apache php:7.2-apache

> tty 3

$ docker exec -it php-apache bash
root@be8415f43808:/var/www/html# apt update && apt install vim
root@be8415f43808:/var/www/html# vim index.php
<?php 
phpinfo();
:wq
$ exit

> tty 1

$ Ctrl+C
$ docker run -it --name=php-fpm php:7.2-fpm
$ docker start php-fpm

> tty 1

$ docker ps

> tty 1

$ mkdir docker && cd docker
$ mkdir php-base && cd php-base
$ touch Dockerfile
$ vim Dockerfile

dockerWorkshop/docker/php-base/Dockerfile

FROM php:7.2-fpm

WORKDIR "/application"
RUN apt-get update \
    && apt-get install -y libicu-dev libpng-dev libjpeg-dev libpq-dev  \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \
    && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
    && docker-php-ext-install intl gd mbstring
RUN apt-get update && apt-get install -y mysql-client \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \
    && docker-php-ext-install mysqli pdo pdo_mysql
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

> tty 1

$ docker build -t "php-fpm-base" .
$ docker run --name="php-fpm-base" php-fpm-base

> tty 3

$ docker exec php-fpm-base php -i
$ docker exec php-fpm-base composer -V
$ cd docker && mkdir php-fpm-dev && cd php-fpm-dev
$ touch Dockerfile
$ vim Dockerfile

dockerWorkshop/docker/php-fpm-dev/Dockerfile

FROM php-fpm-base

RUN pecl install xdebug && docker-php-ext-enable xdebug

RUN apt-get update \
    && apt-get -y install unzip zlib1g-dev \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* \
    && docker-php-ext-install zip

> tty 3

$ docker build -t "php-fpm-dev" .
$ docker run --name="php-fpm-dev" php-fpm-dev

> tty 1

$ Ctrl+C
$ docker exec php-fpm-dev php -v

> tty 3

$ Ctrl+C

> tty 2

$ Ctrl+C

> tty 1

$ Ctrl+C
$ cd ..
$ git init
$ git config --global user.email "[email protected]"
$ git config --global user.name "Rolando Caldas"
$ git add .
$ git commit -m "My php docker containers configuration for development"
$ git remote add origin https://github.com/rolando-caldas/cebem-docker-php.git
$ git push -u origin master

Google Chrome

En https://hub.docker.com nos creamos una cuenta y la enlazamos con Github. Para enlazarla con Github, una vez creada ni ideay estando conectados accedemos a https://hub.docker.com/account/authorized-services/ y desde ahí vamos a "Link Github"

Con la cuenta enlazada creamos un automated build:

docker hub

Seleccionamos "Create Auto-build Github"

Create Auto-build Github

Buscamos el repositorio de nuestro github docker-workshop

Github

Podemos seleccionar visibilidad privada (de forma gratuita tenemos uno disponible) o público, en nuestro caso este último

Select public

Una vez creado, vamos a Build Settings y lo dejamos como en a siguiente imagen:

Config builds

Clicamos en "Trigger" por orden, primero php-base, luego php-xdebug, php-dev y php-dev-mysql como último.

Los build entrarán en cola en el hub y una vez finalicen en tags tendremos las imágenes disponibles.

Tags available

> tty 1

$ vim php-fpm-dev/Dockerfile

workshopDocker-phpVigo/docker/php-xdebug/Dockerfile

FROM rolandocaldas/cebem-php:php-base
[...]

> tty 1

$ git add .
$ git commit -m "Changed Dockerfiles to set the FROM new value"
$ git push origin master

> tty 1

$ docker run rolandocaldas/cebem-php:php-fpm-dev

> tty 1

$ Ctrl+C
$ cd ..
$ git clone https://github.com/rolando-caldas/workshop-gitlab-backend.git
$ git clone https://github.com/rolando-caldas/workshop-gitlab-frontendgit

altia-tech-day-docker's People

Contributors

rolandocaldas avatar

Stargazers

Diego Araujo avatar Guillermo Barreiro avatar Santiago Salvador avatar Adrian Duran Barcala avatar

Watchers

 avatar

Forkers

marcoscs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.