nginx-proxy
the following details how to use nginx-proxy
to host multiple docker containers (nginx-proxy guide)
- create docker network
docker network create nginx-proxy
- install nginx-proxy container
docker run -d --name nginx-proxy \ -p 80:80 \ --net nginx-proxy \ -v /var/run/docker.sock:/tmp/docker.sock \ jwilder/nginx-proxy
letsencrypt companion
in order to use the letsencrypt companion container with nginx-proxy we need to modify the nginx-proxy run command slightly
```
docker run -d --name nginx-proxy \
-p 80:80 -p 443:443 \
--net nginx-proxy \
-v /etc/nginx/certs \
-v /etc/nginx/vhost.d \
-v /usr/share/nginx/html \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
jwilder/nginx-proxy
```
then we can run the letsencrypt-nginx-proxy-companion
container
```
docker run -d --name nginx-proxy-letsencrypt \
--volumes-from nginx-proxy \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-e "DEFAULT_EMAIL=root@pyratebeard.net" \
jrcs/letsencrypt-nginx-proxy-companion
```
to start the application containers add the VIRTUAL_HOST
and LETSENCRYPT_HOST
variables
using my log container as an example
```
docker run -d --name "$CONTAINER_NAME" \
--expose 1313 \
--net nginx-proxy \
-e VIRTUAL_HOST=log.pyratebeard.net \
-e LETSENCRYPT_HOST=log.pyratebeard.net \
-v $(pwd):/src \
$CI_REGISTRY_IMAGE
```