Laradock php mysql 安装多版本
安装 php 多版本
第一步复制 php-fpm 放到 php-fpm 的下面,修改如下
## php-fpm 7.0
php-fpm70: # 修改名字为 php-fpm70
build:
context: ./php-fpm
args:
# ...
- LARADOCK_PHP_VERSION=7.0 # 直接写死版本号,或者 .env再加一个变量
# ...
volumes:
# ...
- ./php-fpm/php7.0.ini:/usr/local/etc/php/php.ini # 使用 7.0 的配置文件
# ...
第二步修改 site 配置文件
- 方法一,修改站点配置文件
fastcgi_pass php-upstream;
替换为
fastcgi_pass php-fpm70:9000;
- 方法二
nginx Dockerfile 文件修改
在这句下面
ARG PHP_UPSTREAM_CONTAINER=php-fpm
增加 php-fpm70 的变量
ARG PHP70_UPSTREAM_CONTAINER=php-fpm70
在这句下面
# Set upstream conf and remove the default conf
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
&& rm /etc/nginx/conf.d/default.conf
增加 php-fpm70
# 写入 php-fpm70
RUN echo "upstream php70-upstream { server ${PHP70_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" >> /etc/nginx/conf.d/upstream.conf
然后将站点配置文件修改为
fastcgi_pass php-upstream;
替换为
fastcgi_pass php70-upstream;
第三步,自动跟随启动
docker-compose nginx 模块
depends_on:
- php-fpm
- php-fpm70 # 增加 php-fpm70
安装 mysql 多版本
这里假设 latest 对应的是 8.0,现在要安装 5.7
复制 docker-compose.yml 中 mysql 容器代码放到 mysql 的下面,修改如下
### MySQL5.7 ################################################
mysql57: # 容器名字就叫 mysql57
build:
context: ./mysql
args:
- MYSQL_VERSION=5.7 # 这里直接写死版本号
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- TZ=${WORKSPACE_TIMEZONE}
volumes:
- ${DATA_PATH_HOST}/mysql57:/var/lib/mysql # 这里要把mysql 数据目录改一下名字,改为mysql57,否则会和默认版本冲突提示无法写入文件
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports:
- "3307:3307" # 这里将端口映射到主机 3307 端口,并且内部也是用 3307(这样本地和程序中都使用同一个 3307 端口), 本地端口:容器端口
networks:
- backend
启动
docker-compose up -d mysql57
可以将 mysql57 添加为 mysql 的依赖项,这样当启动 mysql 时,也会自动把 mysql57 启动
在 mysql 模块的 ports 下面追加
depends_on:
- mysql57
这样如下命令,将同时启动 mysql 和 mysql57
docker-compose up -d mysql
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: