mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
新增docker用法和说明;
This commit is contained in:
31
Dockerfile
31
Dockerfile
@@ -1,8 +1,8 @@
|
||||
# 基于官方 PHP 8.0 镜像
|
||||
FROM php:8.0-fpm
|
||||
|
||||
# RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
|
||||
# RUN sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
|
||||
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
|
||||
RUN sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update
|
||||
|
||||
@@ -10,7 +10,7 @@ RUN apt-get update
|
||||
RUN apt-get install -y nginx
|
||||
|
||||
# 安装ffmpeg
|
||||
RUN apt-get install -y ffmpeg
|
||||
# RUN apt-get install -y ffmpeg
|
||||
|
||||
# 安装redis
|
||||
RUN apt-get install -y redis-server
|
||||
@@ -42,19 +42,29 @@ RUN rm /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /var/www/html
|
||||
|
||||
# 将当前目录下的文件拷贝到工作目录
|
||||
COPY . /var/www/html
|
||||
|
||||
# 创建runtime目录
|
||||
RUN mkdir /var/www/html/runtime
|
||||
|
||||
# 设置runtime目录权限为777
|
||||
RUN mkdir -p /var/www/html/runtime
|
||||
RUN chmod -R 777 /var/www/html/runtime
|
||||
|
||||
# 创建持久化存储目录
|
||||
VOLUME /var/www/html/runtime
|
||||
|
||||
# 创建storage目录
|
||||
RUN mkdir -p /var/www/html/public/storage
|
||||
RUN chmod -R 777 /var/www/html/public/storage
|
||||
VOLUME /var/www/html/public/storage
|
||||
|
||||
# 创建build目录
|
||||
RUN mkdir -p /var/www/html/public/build
|
||||
RUN chmod -R 777 /var/www/html/public/build
|
||||
VOLUME /var/www/html/public/build
|
||||
|
||||
# 创建storage(safe)目录
|
||||
RUN mkdir -p /var/www/html/storage
|
||||
RUN chmod -R 777 /var/www/html/storage
|
||||
VOLUME /var/www/html/storage
|
||||
|
||||
# 暴露 Nginx 端口
|
||||
EXPOSE 80
|
||||
|
||||
@@ -62,6 +72,7 @@ EXPOSE 80
|
||||
RUN chmod +x /var/www/html/docker/run.sh
|
||||
|
||||
# 启动 Nginx PHP 然后阻塞
|
||||
CMD /var/www/html/docker/run.sh
|
||||
ENTRYPOINT ["/var/www/html/docker/run.sh"]
|
||||
|
||||
CMD ["server"]
|
||||
|
||||
|
||||
65
README.md
65
README.md
@@ -235,4 +235,67 @@ vscode中liveSassCompiler的配置:
|
||||
```
|
||||
|
||||
### docker
|
||||
内置了docker打包命令,打包出的镜像支持两种调用方法
|
||||
|
||||
#### 打包镜像
|
||||
|
||||
下面给出的命令指定了标签名,可自行替换。
|
||||
使用以下命令打包时,相同的名称不会覆盖,名称会被新的镜像占用,因此用第二行以时间为版本名的方式,调试起来更方面。
|
||||
|
||||
```
|
||||
docker build -t ulthon/ulthon_admin:v1 .
|
||||
docker build -t ulthon/ulthon_admin:202404071454 .
|
||||
```
|
||||
|
||||
#### 运行镜像
|
||||
|
||||
|
||||
下面的命令中为容器指定了名字,可自行替换。
|
||||
相同名称不能重复运行,所以指定名字是个好习惯,否则docker会自动起名。
|
||||
|
||||
|
||||
```
|
||||
docker run -d \
|
||||
-p 88:80 \
|
||||
-v /data/ulthon_admin/runtime:/var/www/html/runtime \
|
||||
-v /data/ulthon_admin/storage:/var/www/html/public/storage \
|
||||
-v /data/ulthon_admin/build:/var/www/html/public/build \
|
||||
-v /data/ulthon_admin/safe_storage:/var/www/html/storage \
|
||||
--name ulthon_admin ulthon/ulthon_admin:202404071454 \
|
||||
server
|
||||
```
|
||||
|
||||
- 端口:需要暴露80端口,冒号左侧可自定义,修改为本机可用的一个端口。
|
||||
- runtime:需要映射runtime目录,冒号左侧可自定义,修改为指定的目录,推荐设置,因为缓存、日志等文件都保存在这个目录下,不指定的话,重启丢失。
|
||||
- public/storage:框架默认的上传文件存储在public/storage下,因此必须映射该目录,如果系统不需要上传,则可以不设置。
|
||||
- public/build:框架默认的生成文件(比如海报、二维码)存储在public/build下,推荐映射,否则重启后丢失。
|
||||
- storage:框架设计了一个安全存储的位置,相对于storage在public下,storage在项目根目录下,因此无法直接请求到,相对安全,此时只能通过相关支持认证的控制器访问,因此更安全,可以用于存储身份证等敏感信息,但此机制大多数项目用不到,如果用到了必须要设置。
|
||||
- 后端运行,`-d`参数可以让docker在后端运行。
|
||||
|
||||
如果有其他指定的目录,可在Dockerfile中自行添加,在命令中映射。
|
||||
|
||||
> 如果不映射目录,镜像不会出错,但重启后丢失。
|
||||
|
||||
|
||||
#### 基本用法
|
||||
|
||||
内置了docker打包命令,打包出的镜像支持两种调用方法:
|
||||
|
||||
- server或空
|
||||
- think
|
||||
|
||||
有两个基本的用法,运行镜像后,如果在最后增加任何参数或者增加server,会启用镜像中的php-fpm和nginx,使用`-d`后自动运行到后台,相当于框架一键运行。
|
||||
|
||||
如果以think开始传参,则是调用think命令,比如`docker run xxxxx think admin:version`,是调用内置命令。
|
||||
|
||||
> 实际上可以不以think开始,也可以是其他路径的php文件,但这里不过多讨论
|
||||
|
||||
#### 其他常用命令
|
||||
|
||||
```bash
|
||||
# 一键删除停止的容器
|
||||
docker rm $(sudo docker ps -a -q)
|
||||
# 导出镜像
|
||||
docker save e950efa97445 > ulthon_admin.tar
|
||||
# 导入镜像
|
||||
docker load < ulthon_admin.tar
|
||||
```
|
||||
@@ -1,21 +1,25 @@
|
||||
# 将代码中的nginx复制到nginx配置文件中
|
||||
cp /var/www/html/docker/nginx.conf /etc/nginx/sites-available/default
|
||||
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
|
||||
#!/bin/bash
|
||||
|
||||
# 将代码中的php配置文件复制到php配置文件中
|
||||
cp /var/www/html/docker/phprun.ini /usr/local/etc/php/conf.d
|
||||
# # 将代码中的nginx复制到nginx配置文件中
|
||||
# cp /var/www/html/docker/nginx.conf /etc/nginx/sites-available/default
|
||||
# ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
|
||||
|
||||
# 运行redis
|
||||
nohup redis-server --requirepass "" &
|
||||
# 运行定时任务
|
||||
nohup php /var/www/html/think timer --local &
|
||||
# # 将代码中的php配置文件复制到php配置文件中
|
||||
# cp /var/www/html/docker/phprun.ini /usr/local/etc/php/conf.d
|
||||
|
||||
# # 运行redis
|
||||
# nohup redis-server --requirepass "" &
|
||||
# # 运行定时任务
|
||||
# nohup php /var/www/html/think timer --local &
|
||||
|
||||
# 输出参数
|
||||
echo "参数为:$@"
|
||||
|
||||
# 如果第一个参数是server,或者没有参数,则运行server
|
||||
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
||||
# 运行nginx
|
||||
service nginx start
|
||||
# 运行php-fpm
|
||||
php-fpm
|
||||
else
|
||||
php "/var/www/html/""$@"
|
||||
php "/var/www/html/""$@"
|
||||
fi
|
||||
|
||||
@@ -12,12 +12,14 @@ use think\console\Output;
|
||||
|
||||
class VersionBase extends Command
|
||||
{
|
||||
public const VERSION = 'v2.0.93';
|
||||
public const VERSION = 'v2.0.94';
|
||||
|
||||
public const LAYUI_VERSION = '2.8.17';
|
||||
|
||||
public const COMMENT = [
|
||||
'修复事件异常错误',
|
||||
'新增docker用法和说明',
|
||||
'优化timer指定本地地址',
|
||||
'修复重置密码命令错误',
|
||||
'发布新版本',
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user