fastadmin Dockerfile 部署
2023-04-13 本文已影响0人
AGEGG
文件路径
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