gpt4 book ai didi

php - 通过 docker compose 将 laravel 容器连接到现有的 mysql 容器

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:14 24 4
gpt4 key购买 nike

我是 docker 的新手,我正在尝试通过 docker-compose 将现有的 MySQL 容器连接到我的 Laravel 应用程序。

MySQL docker-compose.yml 文件在哪里

version: '3'

services:
web:
container_name: ${APP_NAME}_web
build:
context: ./docker/web
ports:
- "9000:80"
volumes:
- ./:/var/www/app
depends_on:
- db
db:
container_name: ${APP_NAME}_db
image: mysql:5.7
ports:
- "3307:3306"
restart: always
volumes:
- dbdata:/var/lib/mysql/
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=laravel_docker_db
volumes:
dbdata:
driver: local
driver_opts:
type: none
device: /storage/docker/laravel_mysql_data
o: bind

此脚本正在下载最新的 mysql 版本并创建一个新容器。我只想将 MYSQL 容器与我的应用程序连接

我现有的 MYSQL 容器是使用桥接网络使用特定 IP 创建的,并在 docker-machine 上运行。

enter image description here

我想知道,我可以在 db context 上定义现有的 MYSQL 容器配置吗?

最佳答案

试试这个 docker-compose 文件:

version: '3.5'
services:
db:
container_name: myapp_db
image: mysql:5.7
ports:
- "3307:3306"
restart: always
volumes:
- dbdata:/var/lib/mysql/
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=laravel_docker_db
networks:
- myapp-network

networks:
myapp-network:
driver: bridge

情况有两种情况:1. 如果你的 laravel 实例也在 docker 中 - 只需添加到 .env 文件的下一行:

DB_HOST=myapp_db
DB_PORT=3306
DB_DATABASE=laravel_docker_db
DB_USERNAME=root
DB_PASSWORD=root

2.如果你不为 laravel 使用 docker - 只需更改变量 DB_HOST=localhost

关于php - 通过 docker compose 将 laravel 容器连接到现有的 mysql 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58706567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com