美文网首页
fastadmin Dockerfile 部署

fastadmin Dockerfile 部署

作者: AGEGG | 来源:发表于2023-04-13 15:29 被阅读0次

    文件路径

    config 下存放 Dockerfile 和 nginx.conf
    dist 下存放 fastadmin的项目文件

    ex.文件中kbs为项目名

    Dockerfile

    # 从ubuntu镜像中构建应用
    FROM ubuntu:latest
     
    # 设置镜像的制作者
    MAINTAINER agegg
    
    RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
    RUN  apt-get clean
     
    # 安装nginx + php-fpm7.4 + php-gd
     
    RUN apt-get update && apt-get -y upgrade && apt-get install -y nginx php7.4-fpm vim
    RUN apt-get install -y php-mysql php-gd 
    # 上一条命令安装nginx和fpm
    # nginx 默认安装路径 /etc/nginx/
    # php-fpm 默认安装路径 /etc/php/fpm/
    # nginx配置文件存放目录 /etc/nginx/conf.d/ 
    # nginx默认项目路径 /var/www/html/
     
    # 在上传目录之前,可以先删除旧项目代码
    # RUN ["rm", "-rf", "/var/www/kbs/"]
     
    # 项目文件上传, 把当前目录下的所有文件上传到/var/www/kbs目录下
    COPY ./dist/ /var/www/kbs/
     
    # 把当前项目的nginx.conf配置文件上传到/etc/nginx/conf.d/目录下
    COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf
     
    # 容器运行时启动应用
    # php-fpm7.4 -D : 启动fpm并在后台运行
    # nginx -g 'daemon off;' : 启动nginx, 前台执行, 并保持进程常驻, 避免docker容器启动后就自动关闭了
    CMD php-fpm7.4 -D && nginx -g 'daemon off;'
    

    nginx.conf

    server{
        listen 8080;
        root /var/www/kbs/public;
        
        location / {
            index index.html index.htm index.php;
    
            if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php?s=$1 last;
            }
        }
     
        # pass the PHP scripts to FastCGI server
        location ~ \.php(/.*)?$ {
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            fastcgi_index  index.php;
            include fastcgi_params;
            add_header Access-Control-Allow-Methods *;
            add_header Access-Control-Max-Age 3600;
            add_header Access-Control-Allow-Origin $http_origin;
            add_header Access-Control-Allow-Headers $http_access_control_request_headers;
    
            fastcgi_split_path_info ^((?U).+?\.php)(/.*)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param REMOTE_X_IP $remote_addr;
            set $Real $proxy_add_x_forwarded_for;
            if ( $Real ~ (\d+)\.(\d+)\.(\d+)\.(\d+)\.(.*) ) {
                set $Real $1.$2.$3.$4;
            }
    
            proxy_set_header  X-Real-IP $Real;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    
    }
    

    部署

    # 解压 (提前将文件打包成tar上传到服务器)
    tar -xvf fastadminDocker.tar
    cd fastadminDocker
    
    # build
    docker build -f config/Dockerfile -t phpkbs:latest .
    
    # run
    docker run -itd -p 80:8080 phpkbs:latest
    

    常用命令

    # 查看镜像
    docker images
    # 查看容器
    docker ps -a
    # 删除容器
    docker rm -f  <CONTAINER ID>
    # 删除镜像
    docker rmi <IMAGE ID>
    
    # 进入容器内
    docker exec -it <CONTAINER ID> /bin/bash
    
    # 容器内项目地址
    cd /var/www/kbs
    # 重启重启nginx
    service nginx restart
    # php.ini 位置
    cd /etc/php/7.4/cli
    
    
    

    相关文章

      网友评论

          本文标题:fastadmin Dockerfile 部署

          本文链接:https://www.haomeiwen.com/subject/lniaddtx.html