Dockerfile 是 Docker 用于構建鏡像的文件。通過 Dockfile 部署 PHP 也十分簡單。
首先,需要在 Dockfile 中指定基礎鏡像,如:
FROM php:7.4-apache
這里選擇的是基于 Apache 的 PHP 7.4 鏡像。接著可以安裝 PHP 擴展、Apache 模塊等,如:
RUN docker-php-ext-install pdo_mysql \ && a2enmod rewrite
這里安裝了 PDO MySQL 擴展和啟用了 Apache 的 rewrite 模塊。
如果需要將本地項目代碼拷貝到容器中,可以通過 COPY 命令實現,如:
COPY . /var/www/html/
這里將當前目錄下的所有文件拷貝到容器中的 /var/www/html/ 目錄中。需要注意的是,這個目錄應當與 Apache 配置中的 DocumentRoot 一致。
對于有依賴管理的 PHP 項目,在 Dockfile 中可以添加 Composer 安裝命令,如:
COPY composer.json composer.lock /var/www/ RUN cd /var/www && composer install --no-dev --prefer-dist --no-scripts --no-progress --no-suggest \ && composer clear-cache
這里將項目中的 composer.json、composer.lock 文件拷貝到容器中的 /var/www/ 目錄,然后在此目錄下運行 Composer 安裝命令,以安裝依賴。
最后,需要指定容器啟動時的命令,如:
CMD ["apache2-foreground"]
這里指定了 Apache 進程作為容器啟動時的主進程。
綜上所述,這是一個最簡單的 Dockfile 部署 PHP 項目的示例:
FROM php:7.4-apache RUN docker-php-ext-install pdo_mysql \ && a2enmod rewrite COPY . /var/www/html/ CMD ["apache2-foreground"]
可以通過以下命令構建并運行容器:
docker build -t my-php-app . docker run -d -p 8080:80 my-php-app
這里將容器內部的 80 端口映射到了宿主機的 8080 端口。訪問 http://localhost:8080 即可看到運行中的 PHP 應用。
上一篇doctrine php
下一篇docker部署php