docker部署think vue项目
架构说明
容器
sun_admin_back_php:sun admin后端php容器
sun_admin_back_nginx:sun admin后端nginx容器
sun_admin_front_nginx:sun admin前端nginx容器
目录
/home/mysql_5.7/data:mysql数据目录
/home/mysql_5.7/conf:mysql配置目录
/home/www/sun_admin.sunqianhu123.cc/back_thinkphp:后端thinkphp目录
/home/www/sun_admin.sunqianhu123.cc/front_desktop:前端桌面端目录
/home/www/sun_admin.sunqianhu123.cc/back_php:后端php容器配置目录
/home/www/sun_admin.sunqianhu123.cc/back_nginx:后端nginx容器配置目录
/home/www/sun_admin.sunqianhu123.cc/front_nginx:前端nginx容器配置目录
创建网络
创建一个自定义网络
docker network create sunqianhu
mysql的安装
拉取mysql镜像
docker pull mysql:5.7
创建mysql数据目录
cd /home
mkdir mysql_5.7
cd mysql_5.7
mkdir data
mkdir conf
运行容器
docker run -d \
--name mysql_5.7 \
-p 3306:3306
-v /home/mysql_5.7/data:/var/lib/mysql \
-v /home/mysql_5.7/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=sqh_mysql \
--network sunqianhu \
mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
后端php容器
镜像制作
Dockerfile
#使用官方 PHP-FPM 8.0 镜像作为基础镜像 FROM php:8.0-fpm RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \ sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list RUN apt-get update && apt-get install -y \ libzip-dev \ zip \ && rm -rf /var/lib/apt/lists/* #安装扩展 RUN docker-php-ext-install pdo pdo_mysql RUN docker-php-ext-enable pdo_mysql RUN docker-php-ext-install zip RUN docker-php-ext-enable zip # 设置工作目录 WORKDIR /var/www/html # 暴露 PHP-FPM 端口 EXPOSE 9000 # 设置默认 CMD,这通常是 PHP-FPM 的启动命令 CMD ["php-fpm"] |
制作镜像
docker build -t sun_admin_back_php
默认配置文件
创建一个临时容器,用于获取初始配置文件
docker run -d -p 9000:9000 --name sun_admin_back_php_temp sun_admin_back_php
获取临时配置文件,放到宿主机上
docker cp sun_admin_back_php_temp:/usr/local/etc/php /home/www/sun_admin.sunqianhu123.cc/back_php
删除临时容器
docker remove sun_admin_back_php_temp -f
创建容器
docker run -d \
--name sun_admin_back_php \
-v /home/www/sun_admin.sunqianhu123.cc/back_thinkphp:/var/www/html \
-v /home/www/sun_admin.sunqianhu123.cc/back_php/php:/usr/local/etc/php \
--network sunqianhu \
sun_admin_back_php
后端nginx容器
镜像制作
Dockerfile
#基础镜像 FROM nginx #设置工作目录 WORKDIR /app #复制项目文件到工作目录 COPY . . #暴露端口 80 EXPOSE 80 #启动 Nginx CMD ["nginx", "-g", "daemon off;"] |
构建镜像
docker build -t sun_admin_back_nginx .
获取镜像默认配置和代码
创建nginx临时容器
docker run --name sun_admin_back_nginx_temp -p 80:80 -d sun_admin_back_nginx
获取默认配置文件
docker cp sun_admin_back_nginx_temp:/etc/nginx/conf.d /home/www/sun_admin.sunqianhu123.cc/back_nginx
获取默认代码
docker cp sun_admin_back_nginx_temp:/etc/nginx/conf.d /home/www/sun_admin.sunqianhu123.cc/back_thinkphp
删除容器
docker remove sun_admin_back_nginx_temp -f
创建容器
docker run -d \
--name sun_admin_back_nginx \
-p 81:80 \
-v /home/www/sun_admin.sunqianhu123.cc/back_thinkphp:/app \
-v /home/www/sun_admin.sunqianhu123.cc/back_nginx/conf.d:/etc/nginx/conf.d \
--network sunqianhu \
sun_admin_back_nginx
站点配置
back.conf
server { listen 80; listen [::]:80; server_name localhost; location ~ \.php$ { root /var/www/html/pulic; fastcgi_pass intel_back_php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/public/$fastcgi_script_name; include fastcgi_params; } location / { root /app/public; index index.html index.htm; if (!-f $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } } } |
前端nginx容器
镜像制作
Dockerfile
#基础镜像 FROM nginx #设置工作目录 WORKDIR /app #复制项目文件到工作目录 COPY . . #暴露端口 80 EXPOSE 80 #启动 Nginx CMD ["nginx", "-g", "daemon off;"] |
构建镜像
docker build -t sun_admin_front_nginx .
获取镜像默认配置
创建nginx临时容器,获取nginx配置文件到宿主机
docker run --name sun_admin_front_nginx_temp -p 80:80 -d sun_admin_front_nginx
获取默认配置文件,放到宿主机上
docker cp sun_admin_front_nginx_temp:/etc/nginx/conf.d /home/www/sun_admin.sunqianhu123.cc/front_nginx
删除临时容器
docker rm sun_admin_front_nginx_temp -f
站点配置
front.conf
server { listen 80; listen [::]:80; server_name localhost; root /app; location /api/ { proxy_pass http://sun_admin_back_nginx/; } location / { index index.html index.htm; try_files $uri $uri/ /index.html last; } } |
创建容器
docker run -d \
--name sun_admin_front_nginx \
-p 80:80 \
-v /home/www/sun_admin.sunqianhu123.cc/front_nginx/conf.d:/etc/nginx/conf.d \
--network sunqianhu \
sun_admin_front_nginx
开机启动
见开机启动文档