PHP開發如何使用Docker部署項目

WBOY
發布: 2023-06-27 18:10:01
原創
3552 人瀏覽過

在PHP開發中使用Docker部署項目,已經成為了越來越流行的趨勢。 Docker是一款流行的容器化技術,它可以將應用程式打包到容器中,從而為開發者提供一個標準化的開發環境,可以將應用程式在不同的作業系統和環境中進行無縫部署,並且實現快速建置、部署和升級應用程式。

下面就讓我們來具體了解在PHP開發中,如何使用Docker部署專案。

第一步:安裝並設定Docker

首先要確保在本機系統上安裝了Docker,而Docker在不同的作業系統中安裝方法可能略有不同。安裝完畢後,在終端機中使用docker version指令,可以驗證是否安裝成功。

配置Docker的核心是,建立一個Dockerfile文件,它是一個文字文件,包含了創建Docker映像的所有指令。在Dockerfile中,我們需要定義PHP開發所需的環境。

第二步:編寫Dockerfile檔案

建立一個Dockerfile文件,將其放在專案的根目錄下。

在Dockerfile中,我們需要包含以下內容:

# 基础镜像,Golang alpine 3.7版本 
FROM alpine:3.7 

# 添加所有php常用库
RUN apk update 
&& apk add --no-cache 
php7-bcmath 
php7-ctype 
php7-curl php7-dom php7-fileinfo php7-ftp php7-gd php7-iconv php7-intl php7-json php7-ldap php7-mbstring php7-mysqli php7-mysqlnd php7-opcache php7-openssl php7-pcntl  
php7-pdo_mysql php7-pdo_sqlite  php7-phar  php7-posix  php7-session  php7-simplexml  php7-soap  php7-sockets  php7-sqlite3  php7-tokenizer  php7-xml  php7-xmlreader  php7-xmlwriter php7-zip php7-zlib 

# 修改时区
RUN apk add --no-cache tzdata 
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

# 在容器中创建目录并设置权限
WORKDIR /var/www/ 
RUN mkdir -p var/www/html 
&& chown -R nginx:nginx /var/www/html 

# 开放80端口
EXPOSE 80 

# 开始运行PHP-FPM
CMD ["php-fpm7", "-F"] 
登入後複製

以上就是一個簡單的Dockerfile檔案的內容,主要包括了以下三個方面的內容:

  1. 基礎鏡像:我們選擇的是alpine 3.7版本,小巧的發行版,只包含了最必要的元件。它減小了鏡像的大小,也讓容器啟動更快。
  2. 加入PHP所需的擴充:如上所示,我們加入了許多PHP的常用擴充。
  3. 設定容器的運作方式:我們將PHP的FPM進程作為容器的預設進程,這樣容器啟動時會自動執行PHP-FPM。

第三個步驟:產生Docker映像

使用以下指令,建構一個PHP-FPM映像:

docker build . -t php-fpm7:latest 
登入後複製

這個指令將會自動從目前目錄建構鏡像,並且將標籤設定為php-fpm7:latest。

第四步:寫docker-compose.yml檔案

接下來,我們需要準備docker-compose.yml文件,這個檔案將定義我們的應用是如何運作的。

version: '3.1' 

services: 

# 定义Nginx服务 
nginx: 
image: nginx:1.13-alpine 
ports: 
- '8000:80' 
volumes: 
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro 
- ./nginx/conf.d:/etc/nginx/conf.d:ro 
- ./code:/var/www/html:ro 
depends_on: 
- php 

# PHP-FPM服务 
php: 
image: php-fpm7:latest 
volumes: 
- ./code:/var/www/html:rw 
- ./php/custom.ini:/usr/local/etc/php/conf.d/custom.ini:ro 

# MySQL服务 
mysql: 
image: mysql:5.7 
ports: 
- '3306:3306' 
env_file: 
- ./mysql/.env 
volumes: 
- ./mysql/data:/var/lib/mysql 
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
登入後複製

如上圖所示,我們定義了Nginx、PHP和MySQL三個服務,其中的連接埠、設定、依賴、掛載磁碟區等設定可以根據你的實際需求進行修改。

第五步:啟動應用程式

最後,我們透過以下指令啟動應用程式:

docker-compose up 
登入後複製

這個指令會讀取docker-compose.yml檔案並啟動所有的服務。執行成功後,你可以透過瀏覽器存取http://localhost:8000,查看部署是否成功。

總結:

以上就是在PHP開發中使用Docker部署專案的方法。相較於傳統的部署方式,Docker部署可以幫助我們降低開發和部署成本,提高應用程式的可擴展性和穩定性,節省開發者的時間。希望本文可以幫助大家更好地學習和應用Docker技術。

以上是PHP開發如何使用Docker部署項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板