-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f72b183
commit 29bafed
Showing
1 changed file
with
11 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"] |