在現代的軟件開發中,將應用程序打包成Docker容器并在容器中運行已成為一種流行的趨勢。使用Docker,團隊可以更輕松地進行開發,測試和交付,同時保持一致性和可移植性。而CodeIgniter(CI)框架則是一個流行的PHP框架,用于構建Web應用程序。在這篇文章中,我們將討論如何將CI框架與Docker配合使用,以更輕松地進行開發。
首先,我們需要為CI應用程序創建Docker容器。我們將使用Docker Compose腳本來創建容器。以下是一個示例docker-compose.yml文件:
version: "3"
services:
php:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/www/html/
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=mydatabase
- MYSQL_USER=root
- MYSQL_PASSWORD=secret
ports:
- "8080:80"
depends_on:
- mysql
mysql:
image: mysql:5.7.30
environment:
- MYSQL_DATABASE=mydatabase
- MYSQL_USER=root
- MYSQL_PASSWORD=secret
- MYSQL_ROOT_PASSWORD=secret
ports:
- "3306"
上述文件中定義了兩個服務 - php和mysql。PHP服務使用Dockerfile構建,該文件應該類似于以下內容:
FROM php:7.4-apache
RUN docker-php-ext-install mysqli
該文件指定了我們要使用的PHP版本,并使用docker-php-ext-install安裝mysqli擴展程序。我們掛載了當前目錄以將CI應用程序復制到容器中。我們還定義了mysql的環境變量和端口映射。
一旦docker-compose.yml和Dockerfile都準備好了,您就可以構建和啟動容器了。在包含這些文件的目錄中運行以下命令:
docker-compose build
docker-compose up -d
這將構建和啟動容器。一旦運行,您可以在瀏覽器中輸入localhost:8080來查看CI應用程序。
現在,我們已經將CI應用程序放入Docker容器中。但是,如果您在開發過程中對代碼進行更改,則需要將新代碼更新到容器中。您可以手動處理此操作,但有一種更簡單的方法是使用Docker卷。
使用卷,您可以將本地計算機上的文件夾映射到Docker容器中。在docker-compose.yml文件中添加如下內容:
volumes:
- .:/var/www/html/
這個卷指定,將容器中/var/www/html目錄映射到本地文件夾。這意味著任何更改將自動在容器中更新,無需手動拷貝文件。
就是這樣。現在您已經知道如何將CI框架與Docker配合使用,大大簡化了應用程序的開發和測試。