-
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
8c4821b
commit 6aef77f
Showing
2 changed files
with
29 additions
and
30 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
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,39 +1,38 @@ | ||
# Usamos una imagen base optimizada para Laravel con Octane, PHP, y paquetes necesarios. | ||
FROM elrincondeisma/octane:latest | ||
# 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 | ||
FROM elrincondelisma/octane:latest | ||
|
||
# Copiamos Composer y Roadrunner desde sus imágenes oficiales. | ||
#Instalamos Composer descargando el instalador oficial y configurándolo en /usr/local/bin. | ||
Run curl -sS https://getcomposer.org/installer | php -- \ | ||
--install-dir=/usr/local/bin --filename=composer | ||
|
||
# Copiamos Composer y Roadrunner desde sus imágenes oficiales para habilitar su uso en el contenedor. | ||
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. | ||
# Configuramos el directorio de trabajo principal del contenedor como /app. | ||
WORKDIR /app | ||
|
||
# Copiamos los archivos del proyecto al contenedor. | ||
# Copiamos todos los archivos del proyecto local al directorio de trabajo en el contenedor. | ||
COPY . . | ||
|
||
# Limpiamos el entorno para evitar problemas con dependencias previas. | ||
RUN rm -rf /app/vendor /app/composer.lock | ||
|
||
# Instalamos las dependencias necesarias y configuramos Laravel. | ||
RUN composer install --no-dev --optimize-autoloader | ||
# Eliminamos la carpeta vendor y el archivo composer.lock para evitar problemas de dependencias | ||
# causados por diferencias entre versiones de php en entornos de desarrollo y producción. | ||
RUN rm -rf /app/vendor | ||
RUN rm -rf /app/composer.lock | ||
# Instalamos las dependencias necesarias para Laravel y Octane, incluyendo Roadrunner. | ||
RUN composer install | ||
RUN composer require laravel/octane spiral/roadrunner | ||
|
||
# Configuramos el archivo de entorno si no existe. | ||
RUN cp .env.example .env || true | ||
|
||
# Creamos el directorio de logs. | ||
# Configuramos el entorno copiando el archivo env.example como .env, ya que este archivo puede faltar tras un pull de git. | ||
COPY .env.example .env | ||
# Creamos el directorio de logs dentro de la carpeta de storage, esencial para Laravel. | ||
RUN mkdir -p /app/storage/logs | ||
|
||
# Limpiamos las cachés de la aplicación. | ||
RUN php artisan cache:clear && \ | ||
php artisan view:clear && \ | ||
php artisan config:clear | ||
|
||
# Instalamos Octane con Swoole y configuramos el inicio. | ||
# Limpiamos las cachés de la aplicación para evitar configuraciones desactualizadas o conflictos. | ||
RUN php artisan cache:clear | ||
RUN php artisan view:clear | ||
RUN php artisan config:clear | ||
# Instalamos Octane con el servidor Swoole y configuramos su inicio para escuchar todas las direcciones IP. | ||
RUN php artisan octane:install --server="swoole" | ||
RUN php artisan octane:start --server="swoole" --host="0.0.0.0" | ||
|
||
# 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"] | ||
# Exponemos el puerto 8000 para permitir conexiones al servidor de octane porque ese está escuchando en el puerto 8000 | ||
EXPOSE 8000 |