Docker容器:dockerfile创建 LNMP 服务+Wordpress 网站平台

文章目录

  • 一.环境及准备工作
    • 1.项目环境
    • 2.服务器环境
    • 3.任务需求
  • 二.Linux 系统基础镜像
  • 三.docker构建Nginx
    • 1.建立工作目录上传安装包
    • 2.编写 Dockerfile 脚本
    • 3.准备 nginx.conf 配置文件
    • 4.生成镜像
    • 5.创建自定义网络
    • 6.启动镜像容器
    • 7.验证 nginx
  • 四.docker构建Mysql
    • 1. 建立工作目录
    • 2. 编写 Dockerfile
    • 3. 准备 my.cnf 文件
    • 4. 生成镜像
    • 5. 启动镜像容器
    • 6. 验证 mysql
  • 五、docker构建Php
    • 1. 建立工作目录
    • 2. 编写 Dockerfile 脚本
    • 3. 准备 php.ini、php-fpm.conf、www.conf 配置文件
      • 3.1 php.ini
      • 3.2 php-fpm.conf
      • 3.3 www.conf
    • 4. 生成镜像
    • 5. 启动镜像容器
    • 6. 验证 php
  • 六、启动 wordpress 服务
    • 1. mysql 授权
    • 2.浏览器访问测试

一.环境及准备工作

1.项目环境

公司在实际的生产环境中,需要使用 Docker 技术在一台主机上创建 LNMP 服务并运行 Wordpress 网站平台。然后对此服务进行相关的性能调优和管理工作。

所有安装包下载:
wget http://101.34.22.188/lnmp_wordpress/mysql-boost-5.7.20.tar.gz
wget http://101.34.22.188/lnmp_wordpress/nginx-1.12.0.tar.gz
wget http://101.34.22.188/lnmp_wordpress/php-7.1.10.tar.bz2
wget http://101.34.22.188/lnmp_wordpress/wordpress-4.9.4-zh_CN.tar.gz

或者
wget -r -np http://101.34.22.188/lnmp_wordpress/

2.服务器环境

容器操作系统IP地址主要软件
nginxCentOS 7172.20.0.10Docker-Nginx
mysqlCentOS 7172.20.0.20Docker-Mysql
phpCentOS 7172.20.0.30Docker-php

3.任务需求

(1)使用 Docker 构建 LNMP 环境并运行 Wordpress 网站平台
(2)限制 Nginx 容器最多使用 500MB 的内存和 1G 的 Swap
(3)限制 Mysql 容器写 /dev/sda 的速率为 10 MB/s
(4)将所有容器进行快照,然后将 Docker 镜像打包成 tar 包备份到本地

二.Linux 系统基础镜像

提前关闭防火墙

#关闭防火墙
systemctl stop firewalld.service
setenforce 0

提前安装好Docker容器,具体安装步骤可以查看以下:

https://blog.csdn.net/Katie_ff/article/details/132304161?spm=1001.2014.3001.5501

下载完之后提前下载centos7的镜像

docker pull centos:7

三.docker构建Nginx

1.建立工作目录上传安装包

mkdir /opt/nginx
cd /opt/nginx
#上传 nginx 安装包 nginx-1.12.0.tar.gz和wordpress 服务包 wordpress-4.9.4-zh_CN.tar.gzls
nginx-1.12.0.tar.gz  wordpress-4.9.4-zh_CN.tar.gz

2.编写 Dockerfile 脚本

vim DockerfileFROM centos:7
MAINTAINER this is nginx image <lnmp>
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make;useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module;make -j 4 && make install
ENV PATH /usr/local/nginx/sbin:$PATH
ADD nginx.conf /usr/local/nginx/conf/
ADD wordpress-4.9.4-zh_CN.tar.gz /usr/local/nginx/html
RUN chmod 777 -R /usr/local/nginx/html/
EXPOSE 80
VOLUME [ "/usr/local/nginx/html/" ]
CMD [ "/usr/local/nginx/sbin/nginx","-g","daemon off;" ]

3.准备 nginx.conf 配置文件

vim nginx.confworker_processes  1;
events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;charset utf-8;location / {root   html;index  index.html index.php;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}location ~ \.php$ {root           html;#此地址是php端地址fastcgi_pass   172.20.0.30:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;include        fastcgi_params;}}
}
egrep -v "^(.)*#(.)*$" nginx.conf | grep -v "^$"

4.生成镜像

docker build -t nginx:lnmp .
docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sIvWLgiu-1692538099265)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820191940612.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AOqMuG2p-1692538099266)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820202809415.png)]

5.创建自定义网络

docker network create --subnet=172.20.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetworkdocker network ls
ifconfig docker1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hJTdPh0A-1692538099268)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820202859623.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-POS0829X-1692538099268)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820202917264.png)]

6.启动镜像容器

docker run -d --name nginx -p 80:80 -m 500m --memory-swap 1g --net mynetwork --ip 172.20.0.10 nginx:lnmp
docker ps

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PyDONj06-1692538099268)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820203006027.png)]

docker inspect nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PL6yu2sS-1692538099269)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820203028981.png)]

7.验证 nginx

#进入容器验证
[root@nginx nginx]# curl http://192.168.198.11:80<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

四.docker构建Mysql

1. 建立工作目录

mkdir /opt/mysql
cd /opt/mysql/
#传入mysql安装包mysql-boost-5.7.20.tar.gz

2. 编写 Dockerfile

vim Dockerfile FROM centos:7
MAINTAINER this is mysql image <lnmp>
RUN yum -y install ncurses ncurses-devel bison cmake pcre-devel zlib-devel gcc gcc-c++ make;useradd -M -s /sbin/nologin mysql
ADD mysql-boost-5.7.20.tar.gz /usr/local/src/
WORKDIR /usr/local/src/mysql-5.7.20/
RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1;make -j4;make install
ADD my.cnf /etc/my.cnf
EXPOSE 3306
RUN chown -R mysql:mysql /usr/local/mysql/;chown mysql:mysql /etc/my.cnf
WORKDIR /usr/local/mysql/bin/
RUN ./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data;cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/;systemctl enable mysqld
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
VOLUME [ "/usr/local/mysql" ]
CMD ["/usr/sbin/init"]

3. 准备 my.cnf 文件

vim my.cnf[client]
port = 3306
socket=/usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

4. 生成镜像

docker build -t mysql:lnmp .
docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JdWbOOJo-1692538099269)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820195532110.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aodlCGTZ-1692538099270)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820204637690.png)]

5. 启动镜像容器

 docker run --name=mysql -d --privileged --device-write-bps /dev/sda:10M -v /usr/local/mysql --net mynetwork --ip 172.20.0.20 mysql:lnmp
docker ps -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-abJ8PhGF-1692538099270)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820204724510.png)]

6. 验证 mysql

docker exec -it mysql bash
systemctl status mysqld

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jpptcqP7-1692538099270)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820194350168.png)]

五、docker构建Php

1. 建立工作目录

mkdir /opt/php
cd /opt/php/
#传入php安装包php-7.1.10.tar.bz2

2. 编写 Dockerfile 脚本

vim Dockerfile FROM centos:7
MAINTAINER this is php image <lnmp>
RUN yum install -y gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel \
gcc gcc-c++ make pcre-devel;useradd -M -s /sbin/nologin nginx
ADD php-7.1.10.tar.bz2 /usr/local/src/
WORKDIR /usr/local/src/php-7.1.10
RUN ./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip ; make -j 4 ; make install
ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
ADD php.ini     /usr/local/php/lib/
ADD php-fpm.conf /usr/local/php/etc/
ADD www.conf /usr/local/php/etc/php-fpm.d/
EXPOSE 9000
CMD /usr/local/php/sbin/php-fpm -F

3. 准备 php.ini、php-fpm.conf、www.conf 配置文件

3.1 php.ini

该配置文件模板位于安装目录的 php-7.1.10/php.ini-development 位置

vim php.ini
#939行,取消注释,修改
date.timezone = Asia/Shanghai
#1170行,修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
egrep -v "^;" php.ini | egrep -v "^$"

3.2 php-fpm.conf

该配置文件位于 /usr/local/php/etc/php-fpm.conf.default

vim php-fpm.conf
#17行,删除注释符号“;”
pid = run/php-fpm.pid
egrep -v "^;" php-fpm.conf | egrep -v "^$"

3.3 www.conf

该配置文件位于 cd /usr/local/php/etc/php-fpm.d/

vim www.confuser = nginx
group = nginx
#36行,修改监听IP和端口为容器IP:9000端口
listen = 172.20.0.30:9000
egrep -v "^;" www.conf | egrep -v "^$"[www]
user = nginx
group = nginx
listen = 172.20.0.30:9000
listen.allowed_clients = 127.0.0.1,172.20.0.10
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

4. 生成镜像

docker build -t php:lnmp .

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBdPH1nP-1692538099271)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820210606340.png)]

docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5sYlE44-1692538099271)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820210622665.png)]

5. 启动镜像容器

docker run -itd --name php --net mynetwork --ip 172.20.0.30 -p 9000:9000 --volumes-from nginx --volumes-from mysql php:lnmp
docker ps

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bULdvvP6-1692538099271)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820212100354.png)]

6. 验证 php

docker exec -it php bash
ps -aux

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OuFmDkZh-1692538099272)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820210754983.png)]

六、启动 wordpress 服务

1. mysql 授权

#进入 mysql 容器
docker exec -it mysql bash
mysql -u root -p
Enter password: 
#初始密码为空直接回车
mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)mysql> grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KpzUb5wK-1692538099272)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230820211026675.png)]

2.浏览器访问测试

访问 http://192.168.198.11/wordpress/index.php
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/52465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PySpark安装及WordCount实现(基于Ubuntu)

先盘点一下要安装哪些东西&#xff1a; VMwareubuntu 14.04&#xff08;64位&#xff09;Java环境&#xff08;JDK 1.8&#xff09;Hadoop 2.7.1Spark 2.4.0&#xff08;Local模式&#xff09;Pycharm &#xff08;一&#xff09;Ubuntu VMware 和 ubuntu 14.04&#xff08;…

【DETR】3、Conditional DETR | 拆分 content 和 spatial 来实现对 DETR 的加速

文章目录 一、Conditional DETR 是怎么被提出来的二、Conditional DETR 的具体实现2.1 框架结构2.2 DETR 的 cross-attention 和 Conditional DETR 的 cross-attention 对比 三、效果 论文&#xff1a;Conditional DETR for Fast Training Convergence 代码&#xff1a;https:…

爬虫逆向实战(二十)--某99网站登录

一、数据接口分析 主页地址&#xff1a;某99网站 1、抓包 通过抓包可以发现登录接口是AC_userlogin 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”可以发现txtPassword和aws是加密参数 请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 无…

Source Insight 宏-局部替换

编码中有没有遇到这种情况&#xff1a;添加一个新的函数&#xff0c;参考某某函数。然后我们新加一个函数名&#xff0c;把某某函数的内容全部拷贝过来&#xff0c;参数不一样时&#xff0c;再把拷贝过来的内容里的参数全部替换成新的参数。source insight 里替换的命令是ctrlh…

基于SSM的OA办公系统Java企业人事信息管理jsp源代码MySQL

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于SSM的OA办公系统 系统有1权限&#xff1a;管理员…

深度丨Serverless + AIGC,一场围绕加速创新的升维布局

作者&#xff1a;褚杏娟 上图来源于基于函数计算部署 SD实现光影效果 前言&#xff1a; Serverless 在中国发展这些年&#xff0c;经历了高潮、低谷、现在重新回到大众视野。很多企业都非常感兴趣&#xff0c;部分企业开始大规模应用&#xff1b;也有一些企业对在生产环境真正…

RTSP/Onvif视频服务器EasyNVR安防视频云服务平台出现崩溃并重启的情况解决方案

EasyNVR安防视频云服务平台的特点是基于RTSP/Onvif协议将前端设备统一接入&#xff0c;在平台进行转码、直播、处理及分发&#xff0c;在安防监控场景中&#xff0c;EasyNVR可实现实时监控、云端录像、云存储、告警、级联等视频能力&#xff0c;极大满足行业的视频监控需求。 有…

网络安全入口设计模式

网络安全入口涵盖了几种设计模式&#xff0c;包括全局路由模式、全局卸载模式和健康终端监控模式。网络安全入口侧重于&#xff1a;全局路由、低延迟故障切换和在边缘处减轻攻击。 上图包含了3个需求。 •网络安全入口模式封装了全局路由模式。因此&#xff0c;实现可以将请求路…

2023年高教社杯数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

线性代数的学习和整理4: 求逆矩阵的多种方法汇总

目录 原始问题&#xff1a;如何求逆矩阵&#xff1f; 1 EXCEL里&#xff0c;直接可以用黑盒表内公式 minverse() 数组公式求A- 2 非线性代数方法&#xff1a;解方程组的方法 3 增广矩阵的方法 4 用行列式的方法计算&#xff08;未验证&#xff09; 5 A-1/|A|*A* &…

报名开启 | HarmonyOS第一课“营”在暑期系列直播

<HarmonyOS第一课>2023年再次启航&#xff01; 特邀HarmonyOS布道师云集华为开发者联盟直播间 聚焦HarmonyOS 4版本新特性 邀您一同学习赢好礼&#xff01; 你准备好了吗&#xff1f; ↓↓↓预约报名↓↓↓ 点击关注了解更多资讯&#xff0c;报名学习

用pytorch实现Resnet

ResNet&#xff08;Residual Network&#xff09;是一种深度卷积神经网络架构&#xff0c;由Kaiming He等人于2015年提出。它在计算机视觉领域引起了革命性的变革&#xff0c;使得训练更深的神经网络成为可能&#xff0c;超越了传统网络架构的限制。 ResNet的主要创新在于…

动态规划入门:斐波那契数列模型以及多状态(C++)

斐波那契数列模型以及多状态 动态规划简述斐波那契数列模型1.第 N 个泰波那契数&#xff08;简单&#xff09;2.三步问题&#xff08;简单&#xff09;3.使⽤最⼩花费爬楼梯&#xff08;简单&#xff09;4.解码方法&#xff08;中等&#xff09; 简单多状态1.打家劫舍&#xff…

Redis 重写 AOF 日志期间,主进程可以正常处理命令吗?

重写 AOF 日志的过程是怎样的&#xff1f; Redis 的重写 AOF 过程是由后台子进程 bgrewriteaof 来完成的&#xff0c;这么做有以下两个好处。 子进程进行 AOF 重写期间&#xff0c;主进程可以继续处理命令请求&#xff0c;从而避免阻塞主进程子进程带有主进程的数据副本。这里…

leetcode359周赛

2828. 判别首字母缩略词 核心思想:枚举。只需要枚举首字母和s是否一一对应即可。 2829. k-avoiding 数组的最小总和 核心思想&#xff1a;自己的方法就是哈希表&#xff0c;枚举i的时候&#xff0c;将k-i统计起来&#xff0c;如果出现了那么就跳过。灵神的方法是数学法&#…

OpenCV项目开发实战--基于Python/C++实现鼠标注释图像和轨迹栏来控制图像大小

鼠标指针是图形用户界面 (GUI) 中的关键组件。没有它,您就无法真正考虑与 GUI 进行交互。那么,让我们深入了解 OpenCV 中鼠标和轨迹栏的内置函数。我们将演示如何使用鼠标来注释图像,以及如何使用轨迹栏来控制图像的大小 我们将使用下图来演示 OpenCV 中鼠标指针和轨迹栏功能…

stm32之16.外设定时器——TIM3

----------- 源码 void tim3_init(void) {NVIC_InitTypeDef NVIC_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//使能TIM3的硬件时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//配置TIM3的定时时间TIM_TimeBaseStructure.TIM_Period 10000-1…

短视频seo源码矩阵系统开源---代码php分享

前言&#xff1a;短视频seo源码 短视频seo矩阵系统源码私有化部署 短视频seo源码 短视频seo矩阵系统源码私有化怎么部署&#xff1f; 首先我们来给大家普及一下什么是短视频seo矩阵系统&#xff1f;视频矩阵分为多平台矩阵与一个平台多账号矩阵&#xff0c;加上seo排名优化&…

R语言快速生成三线表(1)

R语言的优势在于批量处理&#xff0c;常使用到循环和函数&#xff0c;三线表是科研文章中必备的内容。利用函数实现自动判断数据类型和计算。使用R包&#xff08;table1&#xff09;。 # 创建连续性变量 continuous_var1 <- c(1.2, 2.5, 3.7, 4.8, 5.9) continuous_var2 &l…

uniapp踩坑合集

1、onPullDownRefresh下拉刷新不生效 pages.json对应的style中enablePullDownRefresh设置为true&#xff0c;开启下拉刷新 {"path" : "pages/list/list","style" :{"navigationBarTitleText": "页面标题名称","enable…