
docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境docker-compose.ymlservices:mysql-8.0:container_name:mysql-8.0image:mysql:8.0restart:always#ports:#- 3306:3306volumes:-./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:80volumes:-./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 DockerfileFROM php:7.4-fpm-alpine#安装php7.4的拓展RUNsed-is/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g/etc/apk/repositories\apk update\apkaddbuild-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-installzip\docker-php-ext-configure intldocker-php-ext-install intl\# pecl install redis-5.3.1 \# docker-php-ext-enable redis \apk del build-base运行项目# 构建并保持后台运行sudodocker-composeup-d--build# 不构建保持后台运行sudodocker-composeup-d数据库配置# 复制sql文件到容器sudodockercpprojectname.sql mysql-8.0:/# 进行数据库容器sudodockerexec-itmysql-8.0 /bin/bash# 连接数据库mysql-uroot-p# 创建数据库create database projectname default charactersetutf8 collate utf8_general_ci;# 选择数据库use projectname;# 使用sql文件sourceprojectname.sql;# 创建数据库使用用户create userprojectname%identified byzsprojectname;# 分配用户数据库权限grant all privileges on projectname.* toprojectname%;# 刷新数据库flush privileges;# 退出链接exit;# 测试用户链接数据库mysql-uprojectname-pzsprojectname# 导出容器中指定数据库sudodockerexecmysql-8.0 mysqldump-uroot-pzengshunsql80projectname~/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中不指定网络默认在同一网络中部署文件合集百度网盘