Maison > développement back-end > tutoriel php > Dockerize CodeIgniter Un guide étape par étape

Dockerize CodeIgniter Un guide étape par étape

Mary-Kate Olsen
Libérer: 2024-12-06 12:57:11
original
1064 Les gens l'ont consulté

Dockerize CodeIgniter A Step-by-Step Guide

Dans cet article de blog, nous expliquerons comment Dockeriser une application CodeIgniter 3. À la fin de ce guide, vous disposerez d'une application conteneurisée fonctionnant avec Apache, PHP et MySQL, toutes gérées via Docker Compose. Cette approche rationalisera votre environnement de développement et garantira des configurations cohérentes sur plusieurs systèmes.

Conditions préalables

Avant d'entrer dans les détails, assurez-vous que les outils suivants sont installés :

  • Docker : Pour conteneuriser l'application et ses dépendances.
  • Docker Compose : pour gérer les applications Docker multi-conteneurs.
  • CodeIgniter 3 : votre projet CodeIgniter 3 existant.

Étape 1 : configuration de Dockerfile :

Le Dockerfile définit l'environnement dans lequel votre application s'exécutera. Voici comment le configurer :

# Use an official PHP image with Apache
FROM php:8.2-apache

# Enable Apache mod_rewrite for CodeIgniter
RUN a2enmod rewrite

# Set the working directory in the container
WORKDIR /var/www/html

# Copy project files into the container
COPY . /var/www/html

# Install necessary PHP extensions
RUN docker-php-ext-install mysqli

# Set proper permissions for Apache to access files
RUN chown -R www-data:www-data /var/www/html && chmod -R 755 /var/www/html

# Expose port 80
EXPOSE 80
Copier après la connexion

Étape 2 : configuration de Docker Compose

Définissons maintenant un fichier docker-compose.yml, qui configurera et exécutera plusieurs conteneurs à la fois pour votre application Web et la base de données.

version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ci3-docker  # Set the container name here
    ports:
      - "8080:80"  # Map port 80 of the container to port 8080 on the host
    volumes:
      - .:/var/www/html  # Mount current directory to /var/www/html inside the container
    depends_on:
      - db  # Ensure the database is up before starting the application

  db:
    image: mysql:8.0  # Uses the official MySQL image
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root  # Root password for MySQL
      MYSQL_DATABASE: ci3docker  # Initial database to create
    ports:
      - "3306:3306"  # Expose port 3306 for database connections
    volumes:
      - db_data:/var/lib/mysql  # Persist MySQL data

volumes:
  db_data:
    name: ci3-docker  # Name the volume for MySQL data persistence
Copier après la connexion

Étape 3 : Créer et exécuter les conteneurs

Une fois vos fichiers Dockerfile et docker-compose.yml prêts, il est temps de créer et d'exécuter les conteneurs. À la racine de votre projet, ouvrez un terminal et exécutez les commandes suivantes :
Construisez les images Docker :

docker-compose build
Copier après la connexion

Démarrez les conteneurs :

docker-compose up
Copier après la connexion

Cela démarrera à la fois l'application CodeIgniter et la base de données MySQL. Le conteneur d'applications sera accessible sur http://localhost:8080, tandis que la base de données MySQL fonctionnera sur le port 3306.

Étape 4 : Mettre à jour la configuration de la base de données CodeIgniter

Maintenant, assurons-nous que CodeIgniter peut se connecter à la base de données MySQL à l'intérieur du conteneur. Ouvrez votre application/config/database.php et mettez à jour les paramètres de connexion à la base de données :

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'db',  // Service name from Docker Compose
    'username' => 'root',
    'password' => 'root',  // Password set in docker-compose.yml
    'database' => 'ci3docker',  // Database name set in docker-compose.yml
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);
Copier après la connexion

Étape 5 : Accédez à l'application

Une fois les conteneurs installés, visitez http://localhost:8080 dans votre navigateur Web. Si tout est correctement configuré, votre application CodeIgniter 3 devrait fonctionner correctement dans un conteneur Docker.

Étape 6 : Gérer les conteneurs Docker

Pour arrêter les conteneurs, exécutez :

docker-compose down
Copier après la connexion

Conclusion

Dans ce guide, nous avons réussi à Dockeriser une application CodeIgniter 3, la rendant portable et facile à gérer. Docker Compose nous permet de définir et d'exécuter facilement des applications multi-conteneurs, ce qui le rend parfait pour les environnements de développement et de production.

En utilisant Docker, vous garantissez un environnement cohérent pour tous les développeurs et déployez facilement votre application sur différents systèmes sans vous soucier des dépendances. Si vous souhaitez faire évoluer votre application ou l'exécuter dans un environnement cloud, Docker la rend incroyablement simple à gérer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal