Sign inSign up

979mao/php-oci8

By 979mao

Updated 7 months ago

Multi-version PHP (7.3-8.4) with Nginx, Oracle OCI8, PostgreSQL, MySQL, Supervisor and Composer

Image
Languages & frameworks
0

2.8K

979mao/php-oci8 repository overview

PHP Multi-Version + Nginx + OCI8 Docker Image

Imagen Docker con PHP (7.3, 7.4, 8.0, 8.1, 8.2, 8.3, 8.4) FPM, Nginx, Oracle OCI8, PostgreSQL, MySQL/MariaDB y Supervisor.

🚀 Características

  • PHP Multi-Version (7.3, 7.4, 8.0, 8.1, 8.2, 8.3, 8.4)
  • Nginx como servidor web
  • Oracle OCI8 (Instant Client 23.4)
  • PostgreSQL (pgsql, pdo_pgsql)
  • MySQL/MariaDB (mysqli, pdo_mysql)
  • Supervisor para gestión de procesos
  • Cron para tareas programadas
  • Composer (última versión)
  • NPM/Node.js para compilación de assets
  • Extensiones PHP:
    • oci8, mysqli, pgsql, pdo, pdo_mysql, pdo_pgsql
    • gd (con JPEG, PNG, WebP, FreeType)
    • zip, intl, opcache, bcmath, exif, pcntl, sockets
  • OPcache optimizado para producción
  • Healthcheck integrado
  • Timezone: America/Bogota (configurable)
  • Entrypoint automático para proyectos Laravel

📦 Versiones Disponibles

TagPHP VersionImage SizeEstado
latest8.4~400MB✅ Activo
8.48.4~400MB✅ Activo
8.38.3~400MB✅ Activo
8.28.2~400MB✅ Activo
8.18.1~400MB✅ Activo
8.08.0~400MB⚠️ EOL (Nov 2023)
7.47.4~400MB⚠️ EOL (Nov 2022)
7.37.3~400MB⚠️ EOL (Dic 2021)

⚠️ Nota: Las versiones 7.3, 7.4 y 8.0 están en End of Life (EOL) y ya no reciben actualizaciones de seguridad. Se recomienda usar PHP 8.1 o superior para proyectos en producción.

🏃 Uso Rápido

Usando Docker Run
# Ejecutar contenedor
docker run -d \
  --name php-app \
  -p 8080:80 \
  -v $(pwd)/app:/var/www/html \
  979mao/php-oci8:latest

# Ver logs
docker logs -f php-app

# Entrar al contenedor
docker exec -it php-app bash
Usando Docker Compose
# Crear carpeta para tu código
mkdir -p app

# Crear archivo de prueba
echo "<?php phpinfo(); ?>" > app/index.php

# Iniciar servicios
docker-compose up -d

# Ver logs
docker-compose logs -f

# Acceder a: http://localhost:8080

# Detener servicios
docker-compose down

⚙️ Variables de Entorno

VariableDefaultDescripción
TZAmerica/BogotaZona horaria
PHP_MEMORY_LIMIT512MLímite de memoria PHP
PHP_UPLOAD_MAX_FILESIZE50MTamaño máximo de archivo
PHP_POST_MAX_SIZE50MTamaño máximo POST
Ejemplo con variables personalizadas
docker run -d \
  -e TZ=America/New_York \
  -e PHP_MEMORY_LIMIT=1024M \
  -e PHP_UPLOAD_MAX_FILESIZE=100M \
  -p 8080:80 \
  -v $(pwd)/app:/var/www/html \
  979mao/php-oci8:latest

🔌 Configuración de Oracle

Para conectar a una base de datos Oracle:

<?php
// Ejemplo de conexión OCI8
$conn = oci_connect('username', 'password', 'localhost/XE');

if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

echo "Conectado a Oracle Database!";

oci_close($conn);
?>

🐛 Debug y Troubleshooting

Ver información de PHP
docker exec php-app php -v
docker exec php-app php -m
docker exec php-app php -i
Verificar extensiones instaladas
docker exec php-app php -m | grep -E 'oci8|pgsql|mysqli'

🔒 Seguridad

  • PHP-FPM corre como usuario www-data (no root)
  • expose_php está deshabilitado
  • OPcache habilitado para mejor rendimiento
  • Healthcheck configurado
  • Headers de seguridad en Nginx

📊 Performance

  • Tamaño imagen: ~450MB
  • Tiempo de inicio: ~3-5 segundos
  • OPcache: Habilitado (256MB)

💡 Para Proyectos Laravel

Esta imagen incluye un entrypoint automático que:

  • ✅ Instala dependencias (composer, npm)
  • ✅ Configura permisos automáticamente
  • ✅ Ejecuta migraciones en desarrollo
  • ✅ Optimiza cachés de Laravel

Ejemplo rápido:

services:
  app:
    image: 979mao/php-oci8:latest
    environment:
      COMPOSER_UPDATE: "true"    # composer update
      NPM_BUILD: "true"          # npm run build
      RUN_MIGRATIONS: "true"     # php artisan migrate
      CHOWN_PROJECT: "true"      # fix permissions
    volumes:
      - ./:/var/www/html
    ports:
      - "8080:80"

👤 Autor

979mao

Tag summary

Content type

Image

Digest

sha256:6bb7b2659

Size

532.6 MB

Last updated

7 months ago

docker pull 979mao/php-oci8