Skip to content

Commit

Permalink
feat: fix
Browse files Browse the repository at this point in the history
  • Loading branch information
ThePushMaker committed Dec 29, 2024
1 parent 8c4821b commit 6aef77f
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 30 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/laravel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
uses: docker/setup-buildx-action@v1
# Paso 5: Construimos y subimos la imagen al repositorio de Docker Hub
- name: Build and push
uses: docker/build-push-action@v3
uses: docker/build-push-action@v2
with:
context: .
# - La imagen se construye a partir del Dockerfile y se soportan las plataformas 'linux/amd64' y 'linux/arm64'
Expand Down
57 changes: 28 additions & 29 deletions Dockerfile
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

0 comments on commit 6aef77f

Please sign in to comment.