Using Docker to deploy projects in PHP development has become an increasingly popular trend. Docker is a popular containerization technology that can package applications into containers, thereby providing developers with a standardized development environment that can seamlessly deploy applications in different operating systems and environments, and achieve Build, deploy, and upgrade applications quickly.
Let us learn more about how to use Docker to deploy projects in PHP development.
Step 1: Install and configure Docker
First make sure Docker is installed on the local system, and the installation method of Docker may be slightly different in different operating systems. After the installation is complete, use the docker version command in the terminal to verify whether the installation is successful.
The core of configuring Docker is to create a Dockerfile file, which is a text file that contains all the instructions for creating a Docker image. In the Dockerfile, we need to define the environment required for PHP development.
Step 2: Write the Dockerfile file
Create a Dockerfile file and place it in the root directory of the project.
In the Dockerfile, we need to include the following content:
# 基础镜像,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"]
The above is the content of a simple Dockerfile file, which mainly includes the following three aspects:
Step 3: Generate Docker image
Use the following command to build a PHP-FPM image:
docker build . -t php-fpm7:latest
This command will automatically build from the current directory Mirror and set the label to php-fpm7:latest.
Step 4: Write the docker-compose.yml file
Next, we need to prepare the docker-compose.yml file, which will define how our application runs.
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
As shown above, we have defined three services: Nginx, PHP and MySQL. The port, configuration, dependencies, mounted volumes and other settings can be modified according to your actual needs.
Step 5: Start the application
Finally, we start the application through the following command:
docker-compose up
This command will read the docker-compose.yml file and start all services. After the execution is successful, you can visit http://localhost:8000 through the browser to check whether the deployment is successful.
Summary:
The above is how to use Docker to deploy projects in PHP development. Compared with traditional deployment methods, Docker deployment can help us reduce development and deployment costs, improve application scalability and stability, and save developers time. I hope this article can help everyone better learn and apply Docker technology.
The above is the detailed content of How to use Docker to deploy projects in PHP development. For more information, please follow other related articles on the PHP Chinese website!