0

Cree un proyecto el laravel pero no funciona el Docker ya lo probe en XAMPP y funciona bien pero a la hora de probarlo en Docker las rutas me arojan 404 que podría ser?

dockerfile

# Usar la imagen oficial de PHP con Apache
FROM php:8.2-apache

# Establecer el directorio de trabajo
WORKDIR /var/www/html

# Instalar extensiones de PHP y herramientas necesarias
RUN apt-get update && apt-get install -y \
    zip \
    unzip \
    git \
    && docker-php-ext-install pdo pdo_mysql

# Instalar Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Copiar los archivos del proyecto al contenedor
COPY . .

# Establecer el directorio de documentos de Apache
ENV APACHE_DOCUMENT_ROOT /var/www/html/public

# Configurar Apache para que use el directorio de documentos correcto
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/000-default.conf \
    && sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf

# Establecer las variables de entorno necesarias para Composer
ENV COMPOSER_ALLOW_SUPERUSER=1

# Instalar dependencias de Composer
RUN composer install

# Dar permisos a la carpeta de almacenamiento y caché
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache

# Exponer el puerto 80
EXPOSE 80
Docker compose:

version: '4'

services:
  app:
    container_name: App_laravel
    image: davidch244/laravel_emlaze:Comunidad
    ports:
      - "80:80"
    volumes:
      - .:/var/www/html
      - ./000-default.conf:/etc/apache2/sites-available/000-default.conf
    depends_on:
      - db

  db:
    container_name: mysql_emlaze
    image: mysql:8.0.36
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: emlaze6290#
      MYSQL_USER: genoma
      MYSQL_PASSWORD: emlaze6290#
    ports:
      - "3306:3306"
    volumes:
      - dbdata:/var/lib/mysql
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql

volumes:
  dbdata:
Esta seria la configuracion del docker compose con la cual me estoy guiando ya modifique las configuraciones del apache2 montándolo en 1 volumen pero parece que no es por esa zona algúna recomendación, si se requiere mas info con gusto la facilito.

esta es la config del apache

<VirtualHost *:80>
DocumentRoot /var/www/html/public
ServerName localhost
ServerAlias demo.localhost

<Directory /var/www/html/public>
    AllowOverride All
    Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

con esa config tengo el apache del resto son configuraciones predeterminadas.

2
  • hola, compartenos tus archivos de configuracion de apache para ver con que configuracion queda el apache. Por ahora te puedo decir que la declaracion del servicio app en docker-composer.yaml esta ok.
    – clay
    Commented el 28 jun. a las 23:06
  • agregado e intentado varias combinaciones pero no doy con el chiste Commented el 2 jul. a las 21:07

0

Examina otras preguntas con la etiqueta o formula tu propia pregunta.