이 블로그 게시물에서는 CodeIgniter 3 애플리케이션을 Dockerize하는 방법을 살펴보겠습니다. 이 가이드가 끝나면 Docker Compose를 통해 관리되는 Apache, PHP 및 MySQL로 실행되는 컨테이너화된 애플리케이션을 갖게 됩니다. 이 접근 방식은 개발 환경을 간소화하고 여러 시스템에서 일관된 설정을 보장합니다.
전제 조건
자세한 내용을 알아보기 전에 다음 도구가 설치되어 있는지 확인하세요.
- Docker: 애플리케이션과 해당 종속성을 컨테이너화합니다.
- Docker Compose: 다중 컨테이너 Docker 애플리케이션을 관리합니다.
- CodeIgniter 3: 기존 CodeIgniter 3 프로젝트
1단계: Dockerfile 설정:
Dockerfile은 애플리케이션이 실행될 환경을 정의합니다. 설정 방법은 다음과 같습니다.
# 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
2단계: Docker Compose 설정
이제 웹 애플리케이션과 데이터베이스 모두에 대해 여러 컨테이너를 구성하고 실행하는 docker-compose.yml 파일을 정의해 보겠습니다.
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
3단계: 컨테이너 구축 및 실행
Dockerfile 및 docker-compose.yml 파일이 준비되면 컨테이너를 빌드하고 실행할 차례입니다. 프로젝트 루트에서 터미널을 열고 다음 명령을 실행합니다.
Docker 이미지 빌드:
docker-compose build
컨테이너 시작:
docker-compose up
이렇게 하면 CodeIgniter 애플리케이션과 MySQL 데이터베이스가 모두 시작됩니다. 앱 컨테이너는 http://localhost:8080에서 액세스할 수 있고 MySQL 데이터베이스는 포트 3306에서 실행됩니다.
4단계: CodeIgniter 데이터베이스 구성 업데이트
이제 CodeIgniter가 컨테이너 내부의 MySQL 데이터베이스에 연결할 수 있는지 확인해 보겠습니다. application/config/database.php를 열고 데이터베이스 연결 설정을 업데이트하세요:
$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 );
5단계: 애플리케이션에 액세스
컨테이너가 실행되면 웹 브라우저에서 http://localhost:8080을 방문하세요. 모든 것이 올바르게 설정되면 CodeIgniter 3 애플리케이션이 Docker 컨테이너 내에서 원활하게 실행되어야 합니다.
6단계: Docker 컨테이너 관리
컨테이너를 중지하려면 다음을 실행하세요.
docker-compose down
결론
이 가이드에서는 CodeIgniter 3 애플리케이션을 성공적으로 Docker화하여 이식 가능하고 관리하기 쉽게 만들었습니다. Docker Compose를 사용하면 다중 컨테이너 애플리케이션을 쉽게 정의하고 실행할 수 있어 개발 및 프로덕션 환경에 적합합니다.
Docker를 사용하면 모든 개발자에게 일관된 환경을 보장하고 종속성에 대한 걱정 없이 다양한 시스템에 애플리케이션을 쉽게 배포할 수 있습니다. 애플리케이션을 확장하거나 클라우드 환경에서 실행하려는 경우 Docker를 사용하면 관리가 놀라울 정도로 간단해집니다.
위 내용은 Dockerize CodeIgniter 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Laravel은 직관적 인 플래시 방법을 사용하여 임시 세션 데이터 처리를 단순화합니다. 응용 프로그램에 간단한 메시지, 경고 또는 알림을 표시하는 데 적합합니다. 데이터는 기본적으로 후속 요청에만 지속됩니다. $ 요청-

PHP 로깅은 웹 애플리케이션을 모니터링하고 디버깅하고 중요한 이벤트, 오류 및 런타임 동작을 캡처하는 데 필수적입니다. 시스템 성능에 대한 귀중한 통찰력을 제공하고 문제를 식별하며 더 빠른 문제 해결을 지원합니다.

PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

Laravel은 간결한 HTTP 응답 시뮬레이션 구문을 제공하여 HTTP 상호 작용 테스트를 단순화합니다. 이 접근법은 테스트 시뮬레이션을보다 직관적으로 만들면서 코드 중복성을 크게 줄입니다. 기본 구현은 다양한 응답 유형 단축키를 제공합니다. Illuminate \ support \ Facades \ http를 사용하십시오. http :: 가짜 ([ 'google.com'=> 'Hello World', 'github.com'=> [ 'foo'=> 'bar'], 'forge.laravel.com'=>

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

Alipay PHP ...

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
