以fastadmin为例
1.首先在根目录添加文件Dockerfile内容如下
FROM php:7.4-fpm
WORKDIR /var/www/html
#切换国内源
RUNsed -i s/deb.debian.org/mirrors.aliyun.com/g /etc/apt/sources.list
#安装GD库和PDO
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd
RUN docker-php-ext-install pdo pdo_mysql
#复制PHP代码
COPY . /var/www/html
RUN chmod -R 777 /var/www/html/runtime
#安装NGINX
RUN apt-get -y install nginx
#删除默server_name
RUN rm /etc/nginx/sites-enabled/default
#复制nginx配置文件
COPY fs.conf /etc/nginx/conf.d
#添加启动命令
RUN echo "php-fpm -D \n nginx -g 'daemon off;' ">run.sh
RUN chmod +x /var/www/html/run.sh
EXPOSE 80
#启动进程
CMD ["/var/www/html/run.sh"]
2.根目录再建一个fs.conf的文件,内容如下
server {
listen 80 default_server;
server_name default_server;
root /var/www/html/public;
location / {
index index.html index.htm index.php;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
add_header Access-Control-Allow-Headers X-Requested-With;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ [^/]\.php(/|$)
{
## try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/html:/tmp/:/proc/";
}
}
3.在根目录敲命令(最后有个点)
docker build -t fastadmin .
4.启动docker
docker run -p8985:80 fastadmin
后台启动
docker run -d -p8985:80 fastadmin
5.访问 http://test.127.kkxx.ltd:8985