Docker.pdf


Vista previa del archivo PDF docker.pdf


Página 1...73 74 75767791

Vista previa de texto


adelante, sólo ejecutará una instrucción. Es decir, si tenemos varios CMD dentro
de un Dockerfile, ejecutará sólo el último.
Solución:
Usando Supervisor para monitorear y ejecutar MySql y HTTPD. Supervisor se
encarga de controlar varios procesos y se ejecuta como cualquier otro
programa.
Veremos diferentes formas de hacer esto. En principio crearemos todo dentro
de un único contenedor, pero luego explotaremos al máximo los principios y
características de Docker para hacerlo, por ejemplo separar servicios en
diferentes contenedores y linkearlos.

Usando Supervisor y en un único contenedor
Creamos el Dockerfile, con este contenido:
# Imagen Base
FROM ubuntu:14.04
# Instalamos dependencias
# apache2: Servidor Web
# php5: Lenguaje de programacion PHP
# php5-mysql: Driver de MySql para PHP
# supervisor: Lanzadaror y Monitor de procesos
# wget: Utilidad para obtener archivos via HTTP
RUN apt-get update && apt-get -y install \
apache2 \
php5 \
php5-mysql \
supervisor \
wget
# mysql-server se instala con intervención del usuario,
# pero como no es modo interactivo lo que hacemos es setearle las variables
# con un valor.
# Para simplificar hemos usado como usuario y contraseña de mysql 'root'
RUN echo 'mysql-server mysql-server/root_password password root' | \
debconf-set-selections && \
echo 'mysql-server mysql-server/root_password_again password root' | \
debconf-set-selections
# Procedemos ahora sí, a instalar mysql-server
RUN apt-get install -qqy mysql-server
# Preparamos Wordpress
# Obtenemos la última versión
# Descomprimimos
# Copiamos el contenido dentro del root del servidor
# Removemos el viejo index.html (mensaje de bienvenida de apache)
RUN wget http://wordpress.org/latest.tar.gz && \
tar xzvf latest.tar.gz && \
cp -R ./wordpress/* /var/www/html && \
rm /var/www/html/index.html