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

部署文件夹目录

部署目录

更多

  1. php记得修改php.ini配置文件时区:date.timezone = ‘Asia/Shanghai’。
  2. mysql记得修改mysql.cnf配置文件时区:default-time-zone = ‘+08:00’。
  3. docker-compose.yml文件:除了nginx端口映射,其余容器的端口生产模式最好是不映射到外部,容器间通信使用容器名就可以;links参数已弃用,不需要设置,docker-compose.yml中不指定网络默认在同一网络中

部署文件合集

百度网盘

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

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

相关文章

队列的简单例题

题目如下 模拟队列 首先你要明白队列的话 只有队尾才能进行新增,也就是入队 只有队首才能出队,也就是删除 队首队尾指针一开始默认都是0 相当于队列中一开始是有一个元素的就是 0的位置 队首指针head0 队尾指针tail0 1.入队也就是队尾要先赋值&#xf…

vue3+elementuiplus的table表格动态高度

table表格流体高度 1、前提 了解自定义指令、hooks 2、核心思路 通过自定义指令(new ResizeObserver)监听表格变化,然后通过hooks去更新表格高度。 3、核心代码 src/directives/resize.ts // import { debounce } from /utils;import { t…

Apache POI详解

目录 前言 Apache POI是一个强大的Java库,广泛用于处理Microsoft Office文档,包括Word、Excel和PowerPoint等。本文将详细介绍如何使用Apache POI库操作Word模板(包括替换占位符、操作表格)、将Word文档转换为PDF,以及…

AutoGen多角色、多用户、多智能体对话系统

2023-03-11-AutoGen 使用【autoGenchainlitdeepSeek】实现【多角色、多用户、多智能体对话系统】 1-核心思路 01)技术要点:autoGenchainlitdeepSeek02)什么是autoGen->autogen是微软旗下的多智能体的框架03)什么是chainlit-&g…

问deepseek: OpenFOAM并行分区后,是如何实现ldumatrix矩阵向量乘法计算逻辑的?

在OpenFOAM中,lduMatrix 是用于存储稀疏矩阵的类,支持并行计算。并行分区后,lduMatrix 的矩阵向量乘法通过以下步骤实现: 1. 矩阵分区 分区:将矩阵和向量分配到多个处理器上,每个处理器负责一部分。接口&…

数据类设计_图片类设计之4_规则类图形混合算法(前端架构)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 接续上一篇,讨论图片类型设计出来后在场景中如何表达,以及图片的混合算法.前面的内容属于铺垫和基础,这篇内容和实际联系起来了. 背景图和前景图 这里笔者想先…

【openwebui 搭建本地知识库(RAG搭建本地知识库)】

安装准备 openwebui 这个本地安装之前写过使用python安装。也可以直接用docker 命令 docker run --rm -d \-p 3080:8080 \-p 3081:8081 \-e WEBUI_AUTHtrue \-e DEFAULT_LOCALEcn \-e GLOBAL_LOG_LEVEL"INFO" \-e AIOHTTP_CLIENT_TIMEOUT100 \--privilegedtrue \-…

Nginx的流式响应配置详解

现在大模型场景繁多,项目中涉及nginx转发大模型的流式数据时,需配置nginx的转发策略: location /streaming {proxy_pass http://backend_server;proxy_cache off; # 关闭缓存proxy_buffering off; # 关闭代理缓冲chunked_transfer_encoding …

git使用命令总结

文章目录 Git 复制创建提交步骤Git 全局设置:创建 git 仓库:已有仓库? 遇到问题解决办法:问题一先git pull一下,具体流程为以下几步: 详细步骤 Git 复制 git clone -b RobotModelSetting/develop https://gitlab.123/PROJECT/123.git创建提…

flutter 图片资源路径管理

1. 创建统一资源管理类 创建一个单独的 Dart 文件(比如 manager.dart),将所有图片路径集中管理。这样在引用图片时,不需要每次都手动输入完整路径,只需通过常量引用即可。 //manager.dartclass Manager { static co…

Android Retrofit 框架配置与构建模块深入源码分析(六)

一、引言 Retrofit 是一个在 Android 和 Java 开发中广泛使用的类型安全的 HTTP 客户端。它通过简洁的 API 设计,使得网络请求的处理变得高效且易于管理。配置与构建模块作为 Retrofit 的基础部分,承担着初始化和定制 Retrofit 实例的重要任务。开发者可…

80.Dictionary 字典 C#例子

使用 C# 中的 Dictionary 数据结构 在 C# 中&#xff0c;Dictionary<TKey, TValue> 是一个非常强大的数据结构&#xff0c;用于存储键值对。它提供了高效的查找、插入和删除操作&#xff0c;适用于需要快速访问数据的场景。本文将通过一个简单的示例&#xff0c;介绍如何…

tomcat负载均衡配置

这里拿Nginx和之前做的Tomcat 多实例来实现tomcat负载均衡 1.准备多实例与nginx tomcat单机多实例部署-CSDN博客 2.配置nginx做负载均衡 upstream tomcat{ server 192.168.60.11:8081; server 192.168.60.11:8082; server 192.168.60.11:8083; } ser…

C语言中scanf(“%c“,s)会出现的问题

scanf("%c%c", &word[0], &word[1]);的行为与输入缓冲区的内容密切相关。你提到输入ab后&#xff0c;word[0]是\n&#xff0c;这通常是因为输入缓冲区中残留了换行符&#xff08;\n&#xff09;。 一、原因分析 换行符残留 若在输入ab之前有其他输入操作&a…

SealOS部署k8s集群(单节点)

一、 先决条件 每个集群节点应该有不同的主机名。需要在 K8s 集群的第一个 master 节点上运行 sealos run 命令。建议使用干净的操作系统来创建集群。不要自己装 Docker&#xff01;支持大多数 Linux发行版&#xff0c;但内核版本建议5以上。例如&#xff1a;Ubuntu、CentOS、…

Linux 服务器安全配置:密码复杂度与登录超时设置

Linux服务器安全配置指南:密码复杂度与登录超时设置 一、密码复杂度设置 通过PAM模块pam_cracklib.so实现密码强度策略,配置文件: system-auth该文件主要用于定义系统范围内的认证策略,涵盖了用户登录、su 命令切换用户、sudo 权限提升等多种认证场景。当用户尝试进行系…

AI Agent开发框架分析:前端视角

1. Mastra (https://mastra.ai/docs) 优点&#xff1a; 提供直观的界面构建器&#xff0c;适合无代码/低代码开发支持JavaScript/TypeScript&#xff0c;可直接集成到前端项目可视化工作流设计&#xff0c;降低入门门槛内置多种UI组件&#xff0c;加速前端开发 缺点&#xf…

linux上使用unsloth微调大模型的环境踩坑之路-4070ti、4090

我们实验室有2套环境 一套&#xff1a;4070ti。安装了cuda12.4 一套&#xff1a;3张4090.安装了cuda12.4 现在开始给第一套装能运行unsloth能运行的环境 第一步&#xff1a;开始创建虚拟环境 conda create -n test_env python3.11 第二步&#xff1a;进入虚拟环境 conda activa…

网络安全演练有哪些形式

OPENVAS使用 1、确定指定IP是否能ping通 2、创建扫描目标 3、创建扫描任务&#xff08;scan management →newtask&#xff09; 4、开始任务start 5、查看扫描细节 6、查看扫描结果&#xff0c;包含漏洞详细信息&#xff0c;亦可到处PDF文件 7、导出扫描结果报告 8、为…

ConcurrentModificationException:检测到并发修改完美解决方法

&#x1f6a6; ConcurrentModificationException&#xff1a;检测到并发修改完美解决方法 &#x1f4a1; 摘要 1. 什么是ConcurrentModificationException&#xff1f;&#x1f914; 2. ConcurrentModificationException的常见场景 &#x1f6a6; 2.1 使用for-each循环遍历集合…