docker本地开发thinkphp

本地开发thinkphp可以使用docker-compose来配置一个本地的开发环境,要是使用到的镜像有php,nginx,mysql,phpmyadmin,主要用的是前两个,后面两个可以根据项目来判断是否需要。

文件目录如下

  1. docker文件夹放dockerfile和其他配置文件
  2. html文件夹放thinkphp源码
  3. log是nginx的日志文件
  4. mysql是mysql的数据文件夹
  5. docker-compose.yml

首先我们新建文件夹mythinkphp,并在文件夹中创建docker-compose.yml文件。

你需要将下面配置中的mysql环境变量定义成自己的,有了这些你就可以使用phpmyadmin的后台管理数据库了。

version: '3.9'
services: 
  db:
    image: mysql:5.7
    volumes:
      - ./mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: yourpassword//1设置root的密码
      MYSQL_DATABASE: thinkphp//2设置数据库名
      MYSQL_USER: thinphp//3设置数据库用户名
      MYSQL_PASSWORD: &fhf%$#pa//4设置数据库密码
    depends_on:
      - php
  nginx:
    build: ./docker/nginx/
    container_name: nginx-container
    ports: 
      - 1234:80
    volumes:
      - ./html:/var/www/html
      - ./log:/var/log/nginx/
    links:
      - php
  php:
    # image: php:7.4-fpm
    build: ./docker/php/
    container_name: php-container
    expose:
      - 9000
    volumes: 
      - ./html:/var/www/html
      # - ./phpconfig:/usr/local/etc/php/
  phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80
    depends_on:
      - db

如何再创建一个docker的文件夹,主要放镜像的dockerfile文件和其他配置文件

/docker/nginx/Dockerfile

FROM nginx:latest   
COPY ./default.conf /etc/nginx/conf.d/default.conf

nginx的配置文件/docker/nginx/default.conf

server {  

     listen 80 default_server;  
     root /var/www/html/tp5/public;  
     index index.html index.php;  

     charset utf-8;  



     location / {
         if (!-e $request_filename) {
   		rewrite  ^(.*)$  /index.php?s=/$1  last;
          }
     }  

     location = /favicon.ico { access_log off; log_not_found off; }  
     location = /robots.txt { access_log off; log_not_found off; }  

     access_log off;  
     error_log /var/log/nginx/error.log error;  

     sendfile off;  

     client_max_body_size 100m;  

     location ~ .php$ {  
      fastcgi_split_path_info ^(.+.php)(/.+)$;  
      fastcgi_pass php:9000;  
      fastcgi_index index.php;  
      include fastcgi_params;  
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
      fastcgi_intercept_errors off;  
      fastcgi_buffer_size 16k;  
      fastcgi_buffers 4 16k;  
    }

     location ~ /.ht {  
      deny all;  
     }  
    } 

php的容器生成文件/docker/php/Dockerfile

FROM php:7.4-fpm
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
RUN docker-php-ext-install mysqli pdo_mysql

接下来我们将thinkphp的文件放入tp5的文件夹,并放到html文件夹中

设置完成后,我们就可以启动本地环境了

docker-compose up -d
  • 加-d参数意思在后台启动服务

关闭本地环境

docker-compose down

这就是thinkphp用docker的方式配置的的本地开发环境。

评论

《“docker本地开发thinkphp”》 有 1 条评论

  1. 管理员大人 的头像
    管理员大人

    hello

发表回复