docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境
docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境
docker-compose.yml
services:mysql-8.0:container_name: mysql-8.0image: mysql:8.0restart: always#ports:#- "3306:3306"volumes:- ./etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro- ./var/log/mysql:/var/log/mysql:ro- ./var/lib/mysql:/var/lib/mysql- /etc/localtime:/etc/localtime:roenvironment:MYSQL_ROOT_PASSWORD: zengshunsql80php-7.4:container_name: php-7.4image: php:7.4-fpm-alpinebuild: ./dockerfiles/phprestart: alwaysvolumes:- ./etc/php:/usr/local/etc/php- ./var/www:/var/www/html- /etcw/localtime:/etc/localtime:ronginx-1.26:container_name: nginx-1.26image: nginx:1.26.2-alpinerestart: alwaysports:- "80:80"volumes:- ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro- ./etc/nginx/conf.d:/etc/nginx/conf.d:ro- ./etc/nginx/certs:/etc/nginx/certs- ./etc/nginx/.htpasswd:/etc/nginx/.htpasswd- ./var/log/nginx:/var/log/nginx- ./var/www:/usr/share/nginx/html- /etc/localtime:/etc/localtime:ro
- 注意: 如果是 arm架构下搭建环境,则需要在拉取的镜像前加上arm64v8/,拉取arm64v8版本的镜像,同理Dockerfile源镜像也需要修改。
php7.4 Dockerfile
FROM php:7.4-fpm-alpine
#安装php7.4的拓展
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update \
&& apk add build-base autoconf bzip2-dev libxslt-dev freetype-dev libjpeg-turbo-dev libpng-dev zlib-dev libzip-dev icu-dev \
&& docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ \
&& docker-php-ext-install gd \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install opcache \
&& docker-php-ext-install bcmath \
&& docker-php-ext-install mysqli \
&& docker-php-ext-install zip \
&& docker-php-ext-configure intl && docker-php-ext-install intl \
#&& pecl install redis-5.3.1 \
#&& docker-php-ext-enable redis \
&& apk del build-base
运行项目
# 构建并保持后台运行
sudo docker-compose up -d --build
# 不构建保持后台运行
sudo docker-compose up -d
数据库配置
# 复制sql文件到容器
sudo docker cp projectname.sql mysql-8.0:/
# 进行数据库容器
sudo docker exec -it mysql-8.0 /bin/bash
# 连接数据库
mysql -u root -p
# 创建数据库
create database projectname default character set utf8 collate utf8_general_ci;
# 选择数据库
use projectname;
# 使用sql文件
source projectname.sql;
# 创建数据库使用用户
create user 'projectname'@'%' identified by 'zs@projectname';
# 分配用户数据库权限
grant all privileges on projectname.* to 'projectname'@'%';
# 刷新数据库
flush privileges;
# 退出链接
exit;
# 测试用户链接数据库
mysql -u projectname -p zs@projectname
# 导出容器中指定数据库
sudo docker exec mysql-8.0 mysqldump -uroot -pzengshunsql80 projectname > ~/projectname.sql
部署文件夹目录

更多
- php记得修改php.ini配置文件时区:date.timezone = ‘Asia/Shanghai’。
- mysql记得修改mysql.cnf配置文件时区:default-time-zone = ‘+08:00’。
- docker-compose.yml文件:除了nginx端口映射,其余容器的端口生产模式最好是不映射到外部,容器间通信使用容器名就可以;links参数已弃用,不需要设置,docker-compose.yml中不指定网络默认在同一网络中
部署文件合集
百度网盘
相关文章:
docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境
docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境 docker-compose.yml services:mysql-8.0:container_name: mysql-8.0image: mysql:8.0restart: always#ports:#- "3306:3306"volumes:- ./etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro- ./var/log…...
Android7上移植I2C-tools
一,下载源码 cd hardware/libhardware/tests git clone https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git 二, 在 i2c-tools 目录添加 Android.mk 编译文件 LOCAL_PATH: $(call my-dir)################### i2c-tools ###############…...
Centos 7 修改语言和输入源为中文+修改终端快捷键复制为Ctrl+C、粘贴为Ctrl+V
目录 修改语言和输入源为中文 1、设置 2、Region & Language(区域和语言) 3、Add an Input Source(添加输入源) 4、修改语言为中文 5、Restart(重启) 6、Log Out (注销) …...
DeepSeek-进阶版部署(Linux+GPU)
前面几个小节讲解的Win和Linux部署DeepSeek的比较简单的方法,而且采用的模型也是最小的,作为测试体验使用是没问题的。如果要在生产环境使用还是需要用到GPU来实现,下面我将以有一台带上GPU显卡的Linux机器来部署DeepSeek。这里还只是先体验单…...
疯狂安卓入门,crayandroid
系列文章目录 文章目录 系列文章目录第一组 ViewGroup 为基类帧布局约束布局 第二组 TextView 及其子类button时钟 AnalogClock 和 TextClock计时器 第三组 ImageView 及其子类第四组 AdapterView 及其子类AutoCompleteTextView 的功能和用法ExapndaleListViewAdapterViewFlipp…...
批量测试IP和域名联通性
最近需要测试IP和域名的联通性,因数量很多,单个ping占用时间较长。考虑使用Python和Bat解决。考虑到依托的环境,Bat可以在Windows直接运行。所以直接Bat处理。 方法1 echo off for /f %%i in (E:\封禁IP\ipall.txt) do (ping %%i -n 1 &…...
Python——计算机网络
一.ip 1.ip的定义 IP是“Internet Protocol”的缩写,即“互联网协议”。它是用于计算机网络通信的基础协议之一,属于TCP/IP协议族中的网络层协议。IP协议的主要功能是负责将数据包从源主机传输到目标主机,并确保数据能够在复杂的网络环境中正…...
一招解决Pytorch GPU版本安装慢的问题
Pytorch是一个流行的深度学习框架,广泛应用于计算机视觉、自然语言处理等领域。安装Pytorch GPU版本可以充分利用GPU的并行计算能力,加速模型的训练和推理过程。接下来,我们将详细介绍如何在Windows操作系统上安装Pytorch GPU版本。 查看是否…...
股票交易所官方api接口有哪些?获取和使用需要满足什么条件
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...
MoonSharp 文档五
目录 13.Coroutines(协程) Lua中的协程 从CLR代码中的协程 从CLR代码中的协程作为CLR迭代器 注意事项 抢占式协程 14.Hardwire descriptors(硬编码描述符) 为什么需要“硬编码” 什么是“硬编码” 如何进行硬编码 硬编…...
框架源码私享笔记(02)Mybatis核心框架原理 | 一条SQL透析核心组件功能特性
最近在思考一个问题:如何能够更好的分享主流框架源码学习笔记(主要是源码部分)?让有缘刷到的同学既可以有所收获,还能保持对相关技术架构探讨学习热情和兴趣。以及自己也保持较高的分享热情和动力。 今天尝试用一个SQL查询作为引…...
如何重置 MySQL root 用户的登录密码?
重置 MySQL root 密码的核心步骤是绕过权限验证登录数据库并更新密码字段。以下是具体方法: 方法一:通过 --SKIP-GRANT-TABLES 模式修改密码 停止 MySQL 服务 Windows:在命令行执行 net stop mysql(服务名可能为 mysql80 或 mysql…...
ArrayList底层结构和源码分析笔记
参考视频:韩顺平Java集合 ArrayList特点 ArrayList 可以加入 null,包括多个。 ArrayList 是由数组来实现数据存储的 ArrayList 基本等同于 Vector,除了 ArrayList 是线程不安全(执行效率高)。在多线程情况下…...
Centos离线安装gcc
文章目录 Centos离线安装gcc1. gcc是什么?2. gcc下载地址3. gcc的安装4. 安装结果验证 Centos离线安装gcc 1. gcc是什么? GCC(GNU Compiler Collection)是 GNU 项目下的开源编译器套件,主要用于将 C、C 等编程语言的源…...
flutter 图片资源路径管理
1. 创建统一资源管理类 创建一个单独的 Dart 文件(比如 manager.dart),将所有图片路径集中管理。这样在引用图片时,不需要每次都手动输入完整路径,只需通过常量引用即可。 //manager.dartclass Manager { static co…...
[内网渗透] 红日靶场2
环境配置 靶场地址: http://vulnstack.qiyuanxuetang.net/vuln/wiki/ 环境配置可以看这个: https://www.bilibili.com/video/BV1De4y1a7Ps/?spm_id_from333.337.search-card.all.click&vd_sourcecf73ac8de9b7c0322b1bccf77de91c5dNAT模式分配111段, DHCP也要更改 再添加…...
【cocos creator】游戏优化,内存,性能,包体积大小,加载,drawcall优化
参考: https://blog.csdn.net/qq_47012987/article/details/140169024 内存泄露排查 使用chrome测试cocos creator内存泄漏问题手游内存优化cocos creator优化Creator资源自动释放逻辑:所有 cc.Asset 实例都拥有成员函数 addRef 和 decRef,分…...
MySQL 企业版 TDE加密后 测试和问题汇总
一、测试keyring file 1.1 当keyring file文件丢失或者被篡改 结论:不影响当前正在运行的数据库,但是在重启服务后会启动失败出现报错。 tail -n 100 /var/log/mysql/error.log 报错信息如下: 2025-03-12T08:04:54.668847Z 1 [ERROR] [M…...
Unity 封装一个依赖于MonoBehaviour的计时器(下) 链式调用
[Unity] 封装一个依赖于MonoBehaviour的计时器(上)-CSDN博客 目录 1.加入等待间隔时间"永远执行方法 2.修改为支持链式调用 实现链式调用 管理"链式"调度顺序 3.测试 即时方法编辑 "永久"方法 链式调用 4.总结 1.加入等待间隔时间&qu…...
petalinux环境下给linux-xlnx源码打补丁
在调试88e1512芯片时官方驱动无法满足我的应用方式,因此修改了marvell.c源码,但是在做bsp包重新创建新工程时发现之前的修改没有生效,因此查找了一下资料发现可以通过打补丁的方式添加到工程文件中,便于管理。 操作步骤 一、获取…...
套接字缓冲区以及Net_device
基础网络模型图 一般网络设计分为三层架构和五层设计: 一、三层架构 用户空间的应用层 位于最上层,是用户直接使用的网络应用程序,如浏览器、邮件客户端、即时通讯软件等。这些程序通过系统调用(如 socket 接口)向内核…...
2024下半年真题 系统架构设计师 案例分析
案例一 软件架构 关于人工智能系统的需求分析,给出十几个需求。 a.系统发生业务故障时,3秒内启动 XXX,属于可靠性 b.系统中的数据进行导出,要求在3秒内完成,属于可用性 c.质量属性描述,XXX,属…...
AI学习——深度学习核心技术深度解析
一、深度学习的本质与核心思想 定义:通过多层非线性变换,自动学习数据层次化表征的机器学习方法 核心突破: 表征学习:自动发现数据的内在规律,无需人工设计特征端到端学习:直接从原始输入到最终输出&…...
c++介绍智能指针 十二(2)
智能指针share_ptr,与unique_ptr不同,多个shar_ptr对象可以共同管理一个指针,它们通过一个共同的引用计数器来管理指针。当一个智能指针对象销毁时,计数器减一。当计数器为0时,会将所指向的内存对象释放。 #include<memory>…...
西门子S7-1200 PLC远程调试技术方案(巨控GRM532模块)
三步快速实现远程调试 硬件部署 准备西门子S7-1200 PLC、巨控GRM552YW-C模块及编程电脑。GRM552YW-C通过网口与PLC连接,支持4G/5G/Wi-Fi/有线网络接入,无需复杂布线。 软件配置 安装GVCOM3配置软件,注册模块(输入唯一序列号与密…...
vue启动 localhost无法访问
1. localhost 和 127.0.0.1 虽然都指向本机,但它们有细微的区别: - localhost 是一个域名,需要通过 DNS 解析或本地 hosts 文件解析为 IP 地址 - 127.0.0.1 是直接的 IP 地址,不需要解析过程 2. 无法访问 localhost 的可…...
Mac上更改默认应用程序
Mac上为某些文件设置默认打开应用的时候,刚开始是通过打开方式,其他里面,勾选始终以此方式打开,但实际上这个功能并不太好用,经常会让人误以为已经设置好了。但是实际上只是在当前目录起作用。真正解决这个问题可以按照…...
【开源+代码解读】Search-R1:基于强化学习的检索增强大语言模型框架3小时即可打造个人AI-search
大语言模型(LLMs)在处理复杂推理和实时信息检索时面临两大挑战:知识局限性(无法获取最新外部知识)和检索灵活性不足(传统方法依赖固定检索流程)。现有方法如检索增强生成(RAG)和工具调用(Tool-Use)存在以下问题: RAG:单轮检索导致上下文不足,无法适应多轮交互场景…...
贪心算法和遗传算法优劣对比——c#
项目背景:某钢管厂的钢筋原材料为 55米,工作需要需切割 40 米(1段)、11 米(15 段)等 4 种规格 ,现用贪心算法和遗传算法两种算法进行计算: 第一局:{ 40, 1 }, { 11, 15…...
网络安全防护总体架构 网络安全防护工作机制
1 实践内容 1.1 安全防范 为了保障"信息安全金三角"的CIA属性、即机密性、完整性、可用性,信息安全领域提出了一系列安全模型。其中动态可适应网络安全模型基于闭环控制理论,典型的有PDR和P^2DR模型。 1.1.1 PDR模型 信息系统的防御机制能…...
