我正在使用这个 docker 组成的文件设置,部分与拉威尔赛尔,并由我调整.我 for each 数据库设置了一个主机,因此在使用主应用程序设置基本的MySQL,Redis之后,又添加了两个主机.
# For more information: https://laravel.com/docs/sail
version: '3'
services:
app.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
- '${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
- redis
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
mysql_publish:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3307}:3307'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_PUBLISH_DATABASE}'
MYSQL_USER: '${DB_PUBLISH_USERNAME}'
MYSQL_PASSWORD: '${DB_PUBLISH_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql_publish'
mysql_backup:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3308}:3308'
environment:
MYSQL_ROOT_PASSWORD: '${DB_BACKUP_PASSWORD}'
MYSQL_DATABASE: '${DB_BACKUP_DATABASE}'
MYSQL_USER: '${DB_BACKUP_USERNAME}'
MYSQL_PASSWORD: '${DB_BACKUP_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql_backup'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s
redis:
image: 'redis:alpine'
ports:
- '${FORWARD_REDIS_PORT:-6379}:6379'
volumes:
- 'sailredis:/data'
networks:
- sail
healthcheck:
test: ["CMD", "redis-cli", "ping"]
retries: 3
timeout: 5s
networks:
sail:
driver: bridge
volumes:
sailmysql:
driver: local
sailredis:
driver: local
我更改了每个MySQL数据库的主机,因此我运行三个容器.我还根据设置更改了库,因为如果没有设置,似乎会导致问题.
断断续续
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed
错误或者我可以连接并拥有
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'backup.migrations' doesn't exist (SQL: select `migration` from `migrations` order by `batch` asc, `migration` asc)
作为最后一个运行SAIL ARTIANN Migrate--DATABASE=MYSQL_BACKUP的人,我也不太理解这一点,因为我们应该有备份数据库的迁移表.
我的问题是:
为多个数据库设置卷的常用方法是什么,我的可以吗? 您通常如何为多个数据库主机设置端口,我的设置正确吗?
我需要帮助来解决我的问题