hacer un doker contenedor de apache en linux que haga lo siguiente: Montar los archivos .conf desde /home/docker_apache2/ al contenedor. Montar /home para acceder a los public_html de los usuarios. Configurar Apache para incluir esos .conf y servir los sitios. La pagina principal de apache que recibe el cuando lo cosultan esta en /home/projects/pagina_inicio. HAcer el dockerfile y el docker-compose y los comandos que debo ejecutar para que funcione
Respuesta
Perfecto, vamos a crear un entorno con Docker que cumpla con los siguientes requisitos:
✅ Objetivos
- Montar archivos
.confdesde/home/docker_apache2/al contenedor. - Montar
/homepara acceder a lospublic_htmlde los usuarios. - Configurar Apache para incluir esos
.confy servir los sitios. - Servir la página principal desde
/home/projects/pagina_inicio.
📁 Estructura de directorios esperada en el host
/home/
├── docker_apache2/
│ └── sitios.conf (y otros .conf)
├── projects/
│ └── pagina_inicio/
│ └── index.html
├── usuario1/
│ └── public_html/
│ └── index.html
├── usuario2/
│ └── public_html/
│ └── index.html
🐳 Dockerfile
FROM httpd:2.4
# Copiar configuración base
COPY ./default.conf /usr/local/apache2/conf/extra/default.conf
# Incluir todos los .conf personalizados
RUN echo "IncludeOptional conf/extra/default.conf" >> /usr/local/apache2/conf/httpd.conf \
&& echo "IncludeOptional /usr/local/apache2/conf/sites-enabled/*.conf" >> /usr/local/apache2/conf/httpd.conf
# Crear carpeta para los .conf montados
RUN mkdir -p /usr/local/apache2/conf/sites-enabled
⚙️ default.conf (en el mismo directorio que el Dockerfile)
<VirtualHost *:80>
DocumentRoot "/home/projects/pagina_inicio"
<Directory "/home/projects/pagina_inicio">
Require all granted
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
🧩 docker-compose.yml
version: '3.8'
services:
apache:
build: .
container_name: docker_apache2
ports:
- "80:80"
volumes:
- /home:/home:ro
- /home/docker_apache2/:/usr/local/apache2/conf/sites-enabled/:ro
✅ Pasos para ejecutar
Ubica los archivos:
- Guarda el
Dockerfile,default.confydocker-compose.ymlen una carpeta, por ejemplo:/home/docker_apache2_project/.
- Guarda el
Desde esa carpeta, ejecuta:
cd /home/docker_apache2_project/
docker-compose up --build -d
- Verifica en el navegador:
- Abre
http://localhosty deberías ver la página de inicio desde/home/projects/pagina_inicio.
- Abre
🛠️ ¿Qué más necesitas?
- ¿Quieres que te genere un ejemplo de
.confpara un usuario conpublic_html? - ¿Te gustaría que te cree un script para automatizar la creación de los
.confpor usuario?
Puedo ayudarte con eso también.
No hay comentarios:
Publicar un comentario