docs: mejora formato README
This commit is contained in:
parent
44c509548d
commit
17473f49bf
108
README.md
108
README.md
@ -25,23 +25,22 @@ Cualquier dominio `*.lndo.site` siempre apunta a localhost
|
||||
|
||||
## Uso
|
||||
|
||||
Requerimiento: tener Docker Compose instalado.
|
||||
Requerimiento: tener Docker y Docker Compose instalados. En
|
||||
https://servicios.unl.edu.ar/gitlab/recursos/docker se encuentra una
|
||||
receta Ansible para configurar estas herramientas en la PC de
|
||||
desarrollo.
|
||||
|
||||
1. Clonar este repo:
|
||||
1. Clonar este repo:
|
||||
|
||||
```shell
|
||||
git clone https://servicios.unl.edu.ar/gitlab/recursos/traefik.git
|
||||
```
|
||||
git clone https://servicios.unl.edu.ar/gitlab/recursos/traefik.git
|
||||
|
||||
1. Ejecutar Traefik:
|
||||
2. Ejecutar Traefik:
|
||||
|
||||
```shell
|
||||
cd traefik
|
||||
docker-compose up -d
|
||||
```
|
||||
cd traefik
|
||||
docker-compose up -d
|
||||
|
||||
3. Listo! Ahora puedo acceder a los containers locales en
|
||||
http://NOMBRE-CONTAINER.lndo.site .
|
||||
3. Listo! Ahora puedo acceder a los containers locales en
|
||||
http://NOMBRE-CONTAINER.lndo.site
|
||||
|
||||
La selección de `NOMBRE_CONTAINER` sigue una serie de reglas. Para
|
||||
encontrar la URL asignada a un container, ingresar a
|
||||
@ -54,76 +53,63 @@ http://traefik.lndo.site y revisar el listado que aparece.
|
||||
Los containers deben estar asociados a la red de Traefik para poder
|
||||
routear el tráfico interno.
|
||||
|
||||
* En Docker Compose se debe marcar la red Traefik como externa, por
|
||||
ejemplo:
|
||||
* En Docker Compose se debe marcar la red Traefik como externa, por
|
||||
ejemplo:
|
||||
|
||||
```yaml
|
||||
---
|
||||
services:
|
||||
# servicio web de wordpress
|
||||
wordpress:
|
||||
image: wordpress
|
||||
# ... etc ...
|
||||
networks:
|
||||
- traefik
|
||||
- app
|
||||
---
|
||||
services:
|
||||
# servicio web de wordpress
|
||||
wordpress:
|
||||
image: wordpress
|
||||
# ... etc ...
|
||||
networks:
|
||||
- traefik
|
||||
- app
|
||||
|
||||
mysql:
|
||||
image: mysql
|
||||
# ... etc ...
|
||||
networks:
|
||||
- app
|
||||
mysql:
|
||||
image: mysql
|
||||
# ... etc ...
|
||||
networks:
|
||||
- app
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
||||
app:
|
||||
```
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
||||
app:
|
||||
|
||||
### Puerto a publicar
|
||||
|
||||
Traefik usa el primer puerto expuesto por el contenedor. De
|
||||
ser necesario se puede setear en dicho contenedor la _label_
|
||||
Traefik usa el primer puerto expuesto por el contenedor. De ser
|
||||
necesario, se puede setear en dicho contenedor la _label_
|
||||
`traefik.http.services.CONTAINER.loadbalancer.server.port=PUERTO"`
|
||||
para cambiar este comportamiento.
|
||||
|
||||
* `CONTAINER` es un nombre único para el servicio del contenedor, se
|
||||
* `CONTAINER` es un nombre único para el servicio del contenedor, se
|
||||
recomienda usar el mismo nombre que el container.
|
||||
|
||||
* `PUERTO` es el puerto en el que el contenedor escucha peticiones
|
||||
* `PUERTO` es el puerto en el que el contenedor escucha peticiones
|
||||
HTTP.
|
||||
|
||||
### Dominio no estándar para un container
|
||||
### Cambiar dominio de un container
|
||||
|
||||
Obviamente el dominio que estamos configurando debe resolverse vía DNS
|
||||
al host que ejecuta Traefik.
|
||||
Para cambiar el dominio donde atiende un servicio, editar el servicio
|
||||
correspondiente en `docker-compose.yml`:
|
||||
|
||||
#### En docker-compose.yml
|
||||
|
||||
Agregar al servicio correspondiente en docker-compose.yml:
|
||||
|
||||
```
|
||||
# ...
|
||||
labels:
|
||||
traefik.http.routers.CONTAINER.rule=Host(`MIDOMINIO.COM`)
|
||||
# ...
|
||||
```
|
||||
services:
|
||||
app:
|
||||
image: ...
|
||||
# ...
|
||||
labels:
|
||||
traefik.http.routers.CONTAINER.rule=Host(`miservicio.lndo.tite`)
|
||||
|
||||
### Routear según dominio + path
|
||||
|
||||
Si deseo que API1 atienda todas las peticiones `/api/v1/` y WEBAPP
|
||||
atienda en cualquier otro path, ambas para un mismo dominio
|
||||
MIDOMINIO.COM, setear en API1 la _label_:
|
||||
`miservicio.lndo.site`, setear en API1 la _label_:
|
||||
|
||||
```
|
||||
'traefik.http.routers.API1.rule=Host(`MIDOMINIO.COM`) && PathPrefix(`/api/v2`)'
|
||||
```
|
||||
traefik.http.routers.API1.rule=Host(`miservicio.lndo.site`) && PathPrefix(`/api/v2`)
|
||||
|
||||
y en WEBAPP:
|
||||
|
||||
```
|
||||
'traefik.http.routers.API1.rule=Host(`MIDOMINIO.COM`)'
|
||||
```
|
||||
|
||||
Recordar usar comillas simple (`'`) en la opción `--label` si se
|
||||
ejecuta vía CLI.
|
||||
traefik.http.routers.API1.rule=Host(`miservicio.lndo.site`)
|
||||
|
Loading…
x
Reference in New Issue
Block a user