wordpress, nginx, ghost y telegram con docker - i meetup docker córdoba - quaip
DESCRIPTION
Presentación de Sergio Gómez sobre la instalación de contenedores Docker de WordPress, Nginx como proxy inverso, Ghost y Telegram (Webogram), dentro del programa del I Meetup Docker Córdoba, celebrado en coSfera el 05/06/2014TRANSCRIPT
![Page 1: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/1.jpg)
I Meetup Docker Córdoba @sergiogomez
WordPress y Nginxcon Docker
![Page 2: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/2.jpg)
I Meetup Docker Córdoba @sergiogomez
● Socio fundador de QuaiP.com junto al gran @dperilla
● Web Developer Ruby on Rails / HTML / CSS / jQuery
● 15 años de experiencia en aplicaciones web
Sergio Gómez - @sergiogomezUna vida dedicada a la sonrisa, a mis niños, y al rock and roll
![Page 3: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/3.jpg)
I Meetup Docker Córdoba @sergiogomez
● Desarrollo e infraestructuras avanzadas de VoIP
● Servidores de streaming de radio y TV
● Cloud, VPS y servidores avanzados para aplicaciones
![Page 4: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/4.jpg)
I Meetup Docker Córdoba @sergiogomez
1Generar una imagen
Docker de WordPress
![Page 5: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/5.jpg)
I Meetup Docker Córdoba @sergiogomez
¿Qué necesitamos?
+ Un sistema operativo (Ubuntu)
+ Una base de datos (MySQL)
+ Un servidor web (Nginx)
+ Motor de PHP (PHP-FPM)
+ Instalar y configurar WordPress
![Page 6: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/6.jpg)
I Meetup Docker Córdoba @sergiogomez
Dockerfile (1/2)
FROM ubuntu:14.04RUN dpkg-divert --local --rename --add /sbin/initctlRUN ln -sf /bin/true /sbin/initctlRUN apt-get updateRUN apt-get -y upgrade...RUN apt-get -y install mysql-server mysql-client nginx php5-fpm php5-mysql php-apc pwgen python-setuptools curl git unzip...RUN apt-get -y install php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl# mysql config (...)# nginx config (...)# php-fpm config (...)# nginx site conf (...)
Fuente: https://github.com/eugeneware/docker-wordpress-nginx
![Page 7: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/7.jpg)
I Meetup Docker Córdoba @sergiogomez
Dockerfile (2/2)
# Supervisor Config (...)# Install WordpressADD http://wordpress.org/latest.tar.gz /usr/share/nginx/latest.tar.gzRUN cd /usr/share/nginx/ && tar xvf latest.tar.gz && rm latest.tar.gzRUN mv /usr/share/nginx/html/5* /usr/share/nginx/wordpressRUN rm -rf /usr/share/nginx/wwwRUN mv /usr/share/nginx/wordpress /usr/share/nginx/wwwRUN chown -R www-data:www-data /usr/share/nginx/www# Wordpress Initialization and Startup ScriptADD ./start.sh /start.shRUN chmod 755 /start.sh# private exposeEXPOSE 3306EXPOSE 80CMD ["/bin/bash", "/start.sh"]
Fuente: https://github.com/eugeneware/docker-wordpress-nginx
![Page 8: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/8.jpg)
I Meetup Docker Córdoba @sergiogomez
start.sh
La primera vez que se ejecuta:+ Crea una base de datos para WordPress+ Genera una contraseña para la base de datos+ Instalar plugin de Nginx para WordPress+ Configurar enlaces permanentes+ Crear el fichero wp-config.php con los datos generados
Cada vez que se ejecuta:+ Inicia todos los servicios (supervisord)
![Page 9: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/9.jpg)
I Meetup Docker Córdoba @sergiogomez
Creación de la imagen
$ git clone https://github.com/eugeneware/docker-wordpress-nginx.git$ cd docker-wordpress-nginx
# Podemos personalizar el fichero nginx-site.conf
$ docker build -t docker-wordpress-nginx .
Fuente: https://github.com/eugeneware/docker-wordpress-nginx
Al finalizar dispondremos de una imagen que ya podríamos usar para generar tantos contenedores como instancias de WordPress queramos instalar
$ docker run --name blog1 -d docker-wordpress-nginx
Pero aún no vamos a hacerlo, ya que necesitamos acceder a cada instancia desde fuera con su URL (p.e. blog.dominio.com)
![Page 10: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/10.jpg)
I Meetup Docker Córdoba @sergiogomez
2Instalar un servidor Nginx que actúe
como proxy inverso de cada instancia
![Page 11: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/11.jpg)
I Meetup Docker Córdoba @sergiogomez
¿Qué necesitamos?
+ Un sistema operativo (Ubuntu)
+ Un servidor web (Nginx)
+ Configurar Nginx para que enlace con los contenedores Docker que se vayan creando
![Page 12: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/12.jpg)
I Meetup Docker Córdoba @sergiogomez
DockerfileFuente: https://github.com/jwilder/nginx-proxy
FROM ubuntu:12.04# Install Nginx.RUN apt-get updateRUN apt-get install -y python-software-properties wgetRUN add-apt-repository -y ppa:nginx/stableRUN apt-get updateRUN apt-get install -y nginxRUN echo "daemon off;" >> /etc/nginx/nginx.conf(...)
# Install Forego (Foreman in Go)# Install Docker-Gen (Generador de ficheros a partir de metadatos de contenedores Docker)
EXPOSE 80ENV DOCKER_HOST unix:///tmp/docker.sockCMD ["forego", "start", "-r"]
![Page 13: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/13.jpg)
I Meetup Docker Córdoba @sergiogomez
Creación de la imagen
$ git clone https://github.com/jwilder/nginx-proxy.git$ cd nginx-proxy
# Podemos personalizar el fichero nginx.tmpl (plantilla de los virtual host generados)
$ docker build -t nginx-proxy .
Una vez generada la imagen, creamos un contenedor, y ahora sí podemos usar la imagen de WordPress para crear contenedores accesibles con su URL
$ docker run --name proxy -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock -t nginx-proxy
$ docker run --name blog1 -e VIRTUAL_HOST=blog.dominio.com -d docker-wordpress-nginx
Fuente: https://github.com/jwilder/nginx-proxy
![Page 14: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/14.jpg)
I Meetup Docker Córdoba @sergiogomez
Demostración
![Page 15: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/15.jpg)
I Meetup Docker Córdoba @sergiogomez
¿Problemas?
![Page 16: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/16.jpg)
I Meetup Docker Córdoba @sergiogomez
Retos pendientes
+ Comprobar el rendimiento
+ Realizar tareas de mantenimiento
+ Depuración de problemas
+ Migración a otro servidor
+ ...
![Page 17: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/17.jpg)
I Meetup Docker Córdoba @sergiogomez
Bonus Track 1Instalar Ghost
![Page 18: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/18.jpg)
I Meetup Docker Córdoba @sergiogomez
Creación del contenedor
$ docker pull dockerfile/ghost$ mkdir ghost$ cd ghost/$ wget https://raw.githubusercontent.com/TryGhost/Ghost/master/config.example.js -O config.js$ mkdir -p content/data$ mkdir -p content/images$ mkdir -p content/themes
# Editamos el fichero config.js y configuramos el entorno de producción# Reemplazamos 127.0.0.1 por 0.0.0.0
$ docker run --name ghost1 -e VIRTUAL_HOST=ghost.dominio.com -v /path/to/ghost:/ghost-override -d dockerfile/ghost
Fuente: https://github.com/dockerfile/ghost
![Page 19: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/19.jpg)
I Meetup Docker Córdoba @sergiogomez
Bonus Track 2Instalar Telegram
![Page 20: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/20.jpg)
I Meetup Docker Córdoba @sergiogomez
Dockerfile
FROM dockerfile/nodejs
RUN mkdir -p /webogram
ADD https://github.com/sergiogomez/webogram/archive/master.zip /webogram/webogram-master.zipRUN cd /webogram && unzip webogram-master.zip && rm -Rf webogram-master.zip
WORKDIR /webogram/webogram-master/app
EXPOSE 80
CMD ["node", "../server.js"]
![Page 21: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/21.jpg)
I Meetup Docker Córdoba @sergiogomez
Creación de la imagen y varios contenedores
$ git clone https://github.com/sergiogomez/docker-webogram.git$ cd docker-webogram
$ docker build -t docker-webogram .
$ docker run --name chat1 -e VIRTUAL_HOST=chat.dominio1.com -d docker-webogram$ docker run --name chat2 -e VIRTUAL_HOST=chat.dominio2.com -d docker-webogram
![Page 22: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/22.jpg)
I Meetup Docker Córdoba @sergiogomez
¿Alguna pregunta?
![Page 23: WordPress, Nginx, Ghost y Telegram con Docker - I Meetup Docker Córdoba - Quaip](https://reader033.vdocuments.site/reader033/viewer/2022060110/5560f9cdd8b42a424d8b4c17/html5/thumbnails/23.jpg)
I Meetup Docker Córdoba @sergiogomez
¡¡MUCHÍSIMAS GRACIAS!!