https://josejuansanchez.org/iaw/practica-https-docker/index.html
HTTPS-PORTAL es una imagen Docker que contiene un servidor HTTPS totalmente automatizado que hace uso de las tecnologías Nginx y Let’s Enctrypt. Los certificados SSL se obtienen y renuevan de Let’s Encrypt automáticamente.
Esta imagen está preparada para permitir que cualquier aplicación web pueda ejecutarse a través de HTTPS con una configuración muy sencilla.
Puede encontrar más información sobre HTTPS-PORTAL en la web oficial de Docker Hub.
version: '3.4'
services:
mysql:
image: mysql
command: --default-authentication-plugin=mysql_native_password
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
networks:
- backend-network
restart: always
phpmyadmin:
image: phpmyadmin
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
networks:
- backend-network
- frontend-network
restart: always
depends_on:
- mysql
prestashop:
image: prestashop/prestashop
environment:
- DB_SERVER=mysql
volumes:
- prestashop_data:/var/www/html
networks:
- backend-network
- frontend-network
restart: always
depends_on:
- mysql
https-portal:
image: steveltn/https-portal:1
ports:
- 80:80
- 443:443
restart: always
environment:
DOMAINS: 'practicahttps.ml -> http://prestashop:80'
STAGE: 'production' # Don't use production until staging works
# FORCE_RENEW: 'true'
networks:
- frontend-network
volumes:
mysql_data:
prestashop_data:
networks:
backend-network:
frontend-network:
.env
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=prestashop
MYSQL_USER=ps_user
MYSQL_PASSWORD=ps_password
Luego de esto tenés que abrir los puertos en la VPS obtener la dirección IP y asignarle los registros DNS: A y cname (www).
Una vez llegado a este punto, sólo queda desplegar los servicios con Docker Compose y ya tendríamos nuestro sitio web con HTTPS habilitado y todo configurado para que el certificado se vaya renovando automáticamente.
Mezclalo con este docker-compose.yml: y geenerá la imágen de la app con este: https://github.com/jjcosgrove/docker-apache-php/tree/master
version: '2'
volumes:
db:
services:
app:
restart: always
image: orbitmedia/php:5.4-apache
ports:
- 80:80
volumes:
- /home/esotericwarfare/mcg:/var/www/html
- ./cloudflare:/etc/cloudflare/
db:
restart: always
image: hsheth2/mysql-low-memory:5.6
environment:
MYSQL_DATABASE: midb
MYSQL_ROOT_PASSWORD: root
volumes:
- db:/var/lib/mysql