Pgadmin4 – error al crear scripts

Error mostrado

Link a la solución

https://superuser.com/questions/1520739/pgadmin-v4-on-windows-10-can-not-create-select-update-scripts-for-table-erro

Aplicar en Linux Manjaro

vim /usr/lib/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py

En la linea 1310 sustituir attname por name

Reiniciar el pgadmin4

Aplicar en docker

Sustituir en la VM de pgadmin el archivo __init__.py con uno que previamente ha sido modificado

pgadmin4:
      image: dpage/pgadmin4
      ports:
          - "81:80"
      networks:
          - overlay
      environment:
            PGADMIN_DEFAULT_EMAIL: fminio@imbabura.gob.ec
            PGADMIN_DEFAULT_PASSWORD: 123456
      volumes:
            - ./pgadmin4/__init__.py:/pgadmin4/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py

Docker – apache php7 y postgresql

Mediante dos contenedores levantar un servidor apache configurado con Php7 y un contenedor para postgresql con persistencia mediante un volumen de datos:

Preparar la imagen con apache y php7

Estructura del directorio

Crear el archivo Dockerfile

FROM webdevops/php-apache:alpine
RUN apk update && apk add build-base

RUN apk add php7-pdo_pgsql

A partir de una imagen de  «webdevops/php-apache:alpine», procedemos  a actualizar los paquetes (2) y añadir compatibilidad con php7 (3)

Crear la imagen

docker build -t apache7php .

Crear docker-compose.yml

version: '3'
services:
  db:
      image: postgres:latest
      ports:
          - "5432:5432"
      networks:
          - overlay
      environment:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: 123456
      volumes:
          - ./sql:/sql
          - postgres-data:/var/lib/postgresql/data

  web:
      image: apache7php:latest
      ports:
          - "80:80"
      volumes:
          - ../intranet:/app
          - ./php/02_pdo_pgsql.ini:/etc/php7/conf.d/02_pdo_pgsql.ini
          - ./http/vhost.conf:/opt/docker/etc/httpd/vhost.conf
      links:
        - db
      networks:
          - overlay

volumes:
  postgres-data:

networks:
  overlay:

(1) versión de composer

(2) Area de servicios

(3) Etiqueta para contenedor de bdd

(4) Imagen de referencia

(5) puertos

(7) Es necesario establecer una red (característica de la versión 3)

(8) Variable de ambiente

(12) Volumenes que comparte

(13) Carpeta «sql» para compartir respaldos de las bdd

(14) volumen para persistencia de las bdd

(16) Etiqueta para contenedor de servidor web

(17) Referencia a imagen recién creada

(18) Puertos

(20) Volumenes

(21) Carpeta que sera publicada en el sevidor

(22) Archivo de configuración que habilita pdo_pgsql

(23) Archivo de configuración para servidores virtuales

(24) Referencia a contenedor de bdd

(26) Referencia a red

(29) Area de volumenes

(30) Volumen para persistencia de bases de datos

(32) Area para redes

Archivos de configuración

02_pdo_pgsql.ini

extension=pdo_pgsql.so

vhost.conf

#######################################
# Vhost
#######################################

<VirtualHost *:80>
  ServerName docker.vm
  ServerAlias *.vm
  DocumentRoot "/app/public"

  UseCanonicalName Off

  <IfVersion < 2.4>
    Include /opt/docker/etc/httpd/vhost.common.d/*.conf
  </IfVersion>
  <IfVersion >= 2.4>
    IncludeOptional /opt/docker/etc/httpd/vhost.common.d/*.conf
  </IfVersion>

</VirtualHost>

<VirtualHost *:443>
  ServerName docker.vm
  ServerAlias *.vm
  DocumentRoot "/app"

  UseCanonicalName Off

  <IfVersion < 2.4>
    Include /opt/docker/etc/httpd/vhost.common.d/*.conf
  </IfVersion>
  <IfVersion >= 2.4>
    IncludeOptional /opt/docker/etc/httpd/vhost.common.d/*.conf
  </IfVersion>

  Include /opt/docker/etc/httpd/vhost.ssl.conf
</VirtualHost>

 Ejecutar

$ docker-compose up

docker volumes

Los Volúmenes (volumes ) son utilizados con la finalidad de lograr persistencia de los datos utilizados por los contenedores y que no se eliminen junto con el contenedor.

Comandos útiles

Comando Descripción
$ docker volume create my-vol  Crea un volumen de nombre my-vol
$ docker volume ls Lista lo volumenes
$ docker volume inspect my-vol Información detallada del volumen
$ docker rm contenedor Eliminar el contenedor, previo a eliminar el volumen
$ docker volume rm my-vol Eliminar un volumen

 

 

Fuentes

https://docs.docker.com/engine/admin/volumes/volumes/#start-a-container-with-a-volume

https://www.josedomingo.org/pledin/2016/05/gestion-del-almacenamiento-en-docker/

docker alfresco

https://github.com/gui81/docker-alfresco

Descargar imagen de alfresco

docker pull gui81/alfresco:latest

Ejecutar

docker run --name='alfresco' -it --rm -p 8000:8000 gui81/alfresco

 

Docker – compose

Docker compose es una herramienta de administración  para por ejemplo aplicaciones compuestas por varios contenedores relacionados entre si, mediante un archivo descriptor de contenedores.

Estructura de la aplicación

Descriptor de contenedores: docker-compose.yml

 

nginx:
        image: nginx
        ports:
                - "80:80"
        volumes:
                - ./public:/usr/share/nginx/html

                - ./nginx/default:/etc/nginx/sites-available/default
                - ./nginx/default:/etc/nginx/sites-enable/default

                - ./logs/nginx-error.log:/var/log/nginx/error.log
                - ./logs/nginx-access.log:/var/log/nginx/access.log

 

Image: Determina la imagen que utilizara el contenedor

volumes: como cargar los directorios/archivos en el contenedor

Archivos log

Archivos vacios, donde se almacenaran los log al ejecutarse el contenedor

default

Configuración básica de nginx

server {
	listen	80;
	
	root /usr/share/nginx/html
	index index.html;
}

 

index.html

Archivo que se cargara como parte del directorio «public»

<html>
	<body>
		<h3> Hola docker </h3>
	</body>
</html>

Ejecutar la aplicación

docker-compose up

para terminar utilizamos Ctr+c

Imagenes en ejecución

docker-compose ps

Ejecutar sh en el contenedor

docker-compose exec nginx sh

Docker – introducción

Instalar

sudo pacman -S docker

Unirse al grupo de docker

sudo usermod -a -G docker fernando

newgrp docker   # refrescar grupo sin reiniciar

 Comando Descripción
docker search nginx Buscar contenedor
docker pull nginx Descargar imagen
 docker images Listar imagenes
docker ps Lista contenedores
docker star id/nombre Arrancar contenedor
docker stop id/nombre Parar contenedor
docker rmi nombreImagen Borrar imagen
docker rm (docker ps  -aq) Eliminar contenedores
docker rm nombreContenedor Borrar contenedor
docker save -o nginx.tar nginx:latest Exportar una imagen
docker load < nginx.tar Cargar imagen desde archivo

Crear una imagen a partir de Dockerfile

Crear los archivos

Dockerfile

FROM nginx
COPY index.html /usr/share/nginx/html

index.html

<html>
<body>
<h3> Hola docker </h3>
</body>
</html>

Ejecutar

docker build -t nginx .

docker run -p 9000:80 nginx

Acceder a

$docker exec -i -t fbb525c0326b /bin/bash

http://localhost:9000