Skip to content

Commit

Permalink
feat: .
Browse files Browse the repository at this point in the history
  • Loading branch information
ThePushMaker committed Dec 27, 2024
1 parent f72b183 commit 29bafed
Showing 1 changed file with 11 additions and 16 deletions.
27 changes: 11 additions & 16 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,44 +1,39 @@
# cargamos imagen de php nodo alpine super reducida

# construimos una imagen partiendo del asistente de octane. Usamos una imagen base optimizada para Laravel,
# que incluye PHP y todos los paquetes requeridos.
# Podemos usar siempre esta para construir nuestros proyectos de laravel
# Usamos una imagen base optimizada para Laravel con Octane, PHP, y paquetes necesarios.
FROM elrincondeisma/octane:latest

# Copiamos Composer y Roadrunner desde sus imágenes oficiales.
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY --from=spiralscout/roadrunner:2.4.2 /usr/bin/rr /usr/bin/rr

# Configuramos el directorio de trabajo principal del contenedor como /app.
# Configuramos el directorio de trabajo principal del contenedor.
WORKDIR /app

# Copiamos todos los archivos del proyecto local al directorio de trabajo en el contenedor.
# Copiamos los archivos del proyecto al contenedor.
COPY . .

# Eliminamos la carpeta vendor y el archivo composer.lock para evitar problemas con dependencias previas
# causados por diferencias entre versiones de php en entornos de desarrollo y producción.
# Limpiamos el entorno para evitar problemas con dependencias previas.
RUN rm -rf /app/vendor /app/composer.lock

# Instalamos las dependencias necesarias para Laravel y Octane, incluyendo Roadrunner.
# Instalamos las dependencias necesarias y configuramos Laravel.
RUN composer install --no-dev --optimize-autoloader
RUN composer require laravel/octane spiral/roadrunner

#Configuramos el archivo de entorno si no existe copiando el archivo env.example como .env, ya que este archivo puede faltar tras un pull de git.
# Configuramos el archivo de entorno si no existe.
RUN cp .env.example .env || true

# Creamos el directorio de logs dentro de la carpeta de storage, esencial para Laravel.
# Creamos el directorio de logs.
RUN mkdir -p /app/storage/logs

# Limpiamos las cachés de la aplicación para evitar configuraciones desactualizadas o conflictos.
# Limpiamos las cachés de la aplicación.
RUN php artisan cache:clear && \
php artisan view:clear && \
php artisan config:clear

# Instalamos Octane con el servidor Swoole y configuramos su inicio para escuchar todas las direcciones IP.
# Instalamos Octane con Swoole y configuramos el inicio.
RUN php artisan octane:install --server="swoole"

# Exponemos el puerto 8000 para permitir conexiones al servidor de octane porque ese está escuchando en el puerto 8000
# Exponemos el puerto 8000 para el servidor Octane.
EXPOSE 8000

# Comando de inicio para el contenedor.
CMD ["php", "artisan", "octane:start", "--server=swoole", "--host=0.0.0.0", "--port=8000"]
CMD ["php", "artisan", "octane:start", "--server=swoole", "--host=0.0.0.0", "--port=8000"]

0 comments on commit 29bafed

Please sign in to comment.