docker

Instalar PGAdmin con Docker

PGAdmin es una herramienta de Interfaz grafica para administracion de nuestros servidores de base de datos postgres. En este articulo, vamos a a帽adirlo a nuestro archivo docker-compose para poder administrar nuestra base de datos remotamente.

Punto de inicio

Vamos a partir de una situacion donde ya tenemos nuetro docker corriendo y ejecutando postgresql. Para lo cual puedes guiarte de este otro articulo: Instalando Postgres en Docker

Agregando el servicio de pgAdmin

Para instalar pgadmin vamos a editar nuestro archivo docker-compose.yml y a帽adir un nuevo servicio

version: '2'

services:

  db:
    image: postgres
    user: postgres
    environment:
      POSTGRES_PASSWORD: 123456
      POSTGRES_USER: postgres

  pgadmin:
    image: dpage/pgadmin4
    ports:
      - 8080:80
    depends_on:
      - db
    links:
      - db:db
    environment:
      PGADMIN_DEFAULT_EMAIL: admin
      PGADMIN_DEFAULT_PASSWORD: 123456

Como pueden ver en el codigo anterior, hemos a帽adido un servicio pgadmin, el cual se crea a partir de la imagen docker dpage/pgadmin4. Este nuevo servicio se ejecuta en el puerto localhost:8080.

Y listo ya tenemos pgadmin instalado 馃槈

Si tienes alguna duda, dejamelo en los comentarios y juntos lo resolveremos.聽馃榾

Como instalar wordpress usando Docker

Si quieres hacer una instalaci贸n local de wordpress, te mostrare los pasos a seguir usando docker.

NOTA: La instalaci贸n de Docker esta pensada para Ubuntu pero pueden replicarse en windows Mac u otra distribucion Linux.

Instalar Docker

Descubrir docker es algo que te cambia la vida. Finalmente puedes hacer instalaciones de sistemas de forma rapida. Ya no tienes miedo de desconfigurar tu maquina principal. Y puedes hacer cuantas pruebas requieras en la configuracion de los servidores. Sin embargo, aun debes crear las imagenes y lanzar los containers de forma manual. Montar volumenes, configurar las redes internas, etc. Para evitar ese trabajo manual yo recomiendo usar docker-compose.

Docker-compose es una herramienta que intrepreta un archivo de texto docker-compose.yml y ejecuta por ti todos los comandos docker correspondientes.

En este caso, para instalar Docker, Docker-compose y todas sus dependencias necesarias ejecutamos el comando:

sudo apt install docker-compose

Una vez terminado, estamos listos para instalar nuestro wordpress.

Instalar WordPress

Creamos una carpeta donde residira el proyecto:

mkdir proyecto-wordpress

En dicha carpeta creamos un archivo docker-compose.yml:

version: ‘2’
services:
web:
image: wordpress
volumes:
– ./wp-content/:/var/www/html/wp-content/
ports:
– 80: 80
depends_on:
– db
links:
– db : db

db:
image: mysql: 5.7
environment:
– MYSQL_ALLOW_EMPTY_PASSWORD=true
– MYSQL_DATABASE=wordpress
– MYSQL_USER=root

El archivo en cuestion le indica al sistema que se descargue la ultima version de wordpress, que ejecute el servidor en el puerto 80 de nuestro localhost, y que la proyecto-wordpress/wp-content contenga toda la informacion que se sube a wordpress.

Ahora procedemos a ejecutar el servicio de wordpress ejecutando el comando

docker-compose up -d

Al realizar la configuraci贸n inicial de wordpress a traves de localhost, debemos聽tomar en cuenta, que al usar docker el Database Host ya no sera localhost sino db. ( En el archivo docker-compose.yml, en la seccion services => web => links => le pusimos el nombre db al servidor de la base de datos ).

Instalaci贸n Finalizada Exitosamente 馃槈

 

Comandos de Docker-Compose

El servicio de docker no es algo que debe estar permanentemente en memoria. Podemos prenderlo y apagarlo cuando lo necesitemos.

Ejecutar WordPress

docker-compose up -d

Detener WordPress

docker-compose stop

Borrar la instalaci贸n

docker-compose down

Revisar los logs

docker-compose logs web

馃惓 Dockerfile – Instalar paquetes noninteractive

Al momento de crear una imagen personalizada usando dockerfile es necesario instalar paquetes de software y algunos de estos vienen con un set de preguntas para ti.

Hoy dia por ejemplo, tuve que instalar un apache sobre una imagen de ubuntu y queria saber en que Region / Ciudad vivia. Al ejecutar el comando docker-compose build … ahi quedaba mi intento por configurar mi sistema. No habia forma de saltar ese paso.

Para poder evitarlo, le indique al script de docker ( dockerfile ) que estableciera la variable de sistema DEBIAN_FRONTEND como noninteractive.

FROM ubuntu

ARG DEBIAN_FRONTEND=noninteractive
RUN \
apt-get update && \
apt-get install -qq -y php-pgsql postgresql-all libapache2-mod-php

Una vez realizado esto, ya disponia de mi entorno listo para trabajar.

#HappyCoding

鈿 Docker Compose: no module named ordered_dict

Hoy dia, fallo la ejecucion de docker-compose en uno de mis servidores.

El problema:

E ImportError: No module named ordered_dict

La soluci贸n ?

Asegurarnos de tener la version urllib3-1.22, actualmente la version en produccion es la 1.26

Para tal efecto ejecutamos los siguientes comandos

pip uninstall urllib3
pip install urllib3=1.22

#HappyCoding

Docker Compose Build Image

En la configuraci贸n de tu archivo docker-compose.yml, puedes definir si quieres descargar una imagen del dockerhub o si prefieres construirla tu mismo usando el archivo dockerfile de tu proyecto.

Sin embargo, tambien puedes usar las dos instrucciones al mismo tiempo:

build: .
image: testing:prod

En este caso, docker-compose usara el comando build para construir la imagen, pero le pondra el nombre indicado en image 馃榾